Ik zie helaas niet wat ik fout doe om dit op ABC gesorteerd te krijgen. Ik hoop dat iemand mij kan helpen.



<?php

$attribute = sort($attributes);


foreach ( $attributes as $attribute ) : ?>
    
		<tr>
			<th align="left"><?php echo wc_attribute_label( $attribute->get_name() ); ?></th>
			<td><?php
				$values = array();

				if ( $attribute->is_taxonomy() ) {
					$attribute_taxonomy = $attribute->get_taxonomy_object();
					$attribute_values = wc_get_product_terms( $product->get_id(), $attribute->get_name(), array( 'fields' => 'all' ) );

					foreach ( $attribute_values as $attribute_value ) {
						$value_name = esc_html( $attribute_value->name );

						if ( $attribute_taxonomy->attribute_public ) {
							$values[] = '<a href="' . esc_url( get_term_link( $attribute_value->term_id, $attribute->get_name() ) ) . '" rel="tag">' . $value_name . '</a>';
						} else {
							$values[] = $value_name;
						}
					}
				} else {
					$values = $attribute->get_options();

					foreach ( $values as &$value ) {
						$value = esc_html( $value );
					}
				}

				echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
			?></td>
		</tr>
	<?php endforeach; ?>
$attribute = sort($attributes);
In $attribute zit nu true of false want dat is de returnwaarde van sort.

Je gebruikt sort() zo:
$attributes = array(..........);
sort($attributes);
foreach($attributes as ...)


- SanThe - op 04/04/2017 16:53:07

$attribute = sort($attributes);
In $attribute zit nu true of false want dat is de returnwaarde van sort.

Je gebruikt sort() zo:
$attributes = array(..........);
sort($attributes);
foreach($attributes as ...)


Hallo SanThe,

Ik vat hem even niet want wat moet ik nu waar doen ?







[size=xsmall]Toevoeging op 04/04/2017 21:18:55:[/size]

Als ik een var_dump doe krijg ik:


array(28) { ["pa_aantal-personen"]=> object(WC_Product_Attribute)#56937 (1) { ["data":protected]=> array(6) { ["id"]=> int(1) ["name"]=> string(18) "pa_aantal-personen" ["options"]=> array(1) { [0]=> int(1415) } ["position"]=> int(0) ["visible"]=> bool(true) ["variation"]=> bool(false) } } ["pa_aantal-baby"]=> object(WC_Product_Attribute)#56989 (1) { ["data":protected]=> array(6) { ["id"]=> int(2) ["name"]=> string(14) "pa_aantal-baby" ["options"]=> array(1) { [0]=> int(2371) } ["position"]=> int(1) ["visible"]=> bool(true) ["variation"]=> bool(false) } } ["pa_huisdieren-toegestaan"]=> object(WC_Product_Attribute)#56908 (1) { ["data":protected]=> array(6) { ["id"]=> int(3) ["name"]=> string(24) "pa_huisdieren-toegestaan" ["options"]=> array(1) { [0]=> int(2372) } ["position"]=> int(2) ["visible"]=> bool(true) ["variation"]=> bool(false) } }
Bestudeer deze pagina eens en je weet dat sort() alleen maar TRUE of FALSE teruggeeft.

de array geef je door "by reference" wat wil zeggen dat er geen "kopie" gemaakt wordt maar dat er met het origineel gewerkt wordt. (of dit nou om lezen of om aanpassen gaat). Je kunt dat op dezelfde pagina op php.net zien omdat er een & teken voor de parameter staat:


bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Gebruik gaat dus zo:

<?php

$array = array('peer','appel', 'banaan');

sort($array); // pass by reference dus $array zelf wordt veranderd!

print_r($array); // appel, banaan, peer

?>
Hier ga ik straks eens even stoeien of me dit duidelijk is. Bedankt voor de input.

[size=xsmall]Toevoeging op 05/04/2017 10:49:04:[/size]

Frank Nietbelangrijk op 04/04/2017 22:30:44

Bestudeer deze pagina eens en je weet dat sort() alleen maar TRUE of FALSE teruggeeft.

de array geef je door "by reference" wat wil zeggen dat er geen "kopie" gemaakt wordt maar dat er met het origineel gewerkt wordt. (of dit nou om lezen of om aanpassen gaat). Je kunt dat op dezelfde pagina op php.net zien omdat er een & teken voor de parameter staat:


bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Gebruik gaat dus zo:

<?php

$array = array('peer','appel', 'banaan');

sort($array); // pass by reference dus $array zelf wordt veranderd!

print_r($array); // appel, banaan, peer

?>



Ik ben even wezen hardlopen en zojuist hier ingedoken maar dit is me natuurlijk wel duidelijk alleen op de 1 of andere manier sorteert hij niet en blijft alles door elkaar staan.

Zie http://iturl.nl/snjrO1g en dan extra informatie. Dat is nog steeds geen SORT helaas. Het lijk wel dat hij aan de hand van de array wat anders doet.
Ward van der Put op 05/04/2017 11:14:50

Je var_dump() toont een array met objecten. Klopt dat?

Als je een array met objecten wilt sorteren op attributen van die objecten, kun je het beste een sorteerfunctie schrijven voor usort(). Zie bijvoorbeeld:

http://stackoverflow.com/questions/4282413/sort-array-of-objects-by-object-fields


Dat klopt ja dat het nu in een object zit. Er is gister een woocommerce update geweest en ze hebben dit anders opgebouwd. Ik had het mooi opgelost maar toen zat het nog niet in een object.

Ik ga even naar jouw idee kijken, bedankt.

Reageren