this question has answer here:
- how can sort arrays , data in php? 7 answers
hi have array following:
$originalarray = [ 'furniture/fixture' => [ [ 'ledgerid' => '557af7adc3acc3ac2b8b4567', 'groupname' => 'furniture/fixture', 'weightage' => 29, 'ledgername' => 'furniture & fixture', ], [ 'ledgerid' => '558ffa02c3acc331258b4567', 'groupname' => 'furniture/fixture', 'weightage' => 28, 'ledgername' => 'water coolers,referigerator', ], ], 'building' => [ [ 'ledgerid' => '5586c5eec3acc3f42c8b4567', 'groupname' => 'building', 'weightage' => 26, 'ledgername' => 'main building', ], [ 'ledgerid' => '5586c85cc3acc38e2e8b4567', 'groupname' => 'building', 'weightage' => 22, 'ledgername' => 'jr.school building', ], ], 'vehicle' => [ [ 'ledgerid' => '55898004c3acc38b758b4567', 'groupname' => 'vehicle', 'weightage' => 37, 'ledgername' => 'school bus', ], [ 'ledgerid' => '55898078c3acc3c5758b4567', 'groupname' => 'vehicle', 'weightage' => 27, 'ledgername' => 'staff car - tata mobile', ], ], 'plant & machinery' => [ [ 'ledgerid' => '557af81fc3acc3ed2b8b4567', 'groupname' => 'plant & machinery', 'weightage' => 18, 'ledgername' => 'tools carpentres', ], [ 'ledgerid' => '557afff7c3acc38d2e8b4567', 'groupname' => 'plant & machinery', 'weightage' => 29, 'ledgername' => 'water heating equipment', ], [ 'ledgerid' => '557b004dc3acc3bf2e8b4567', 'groupname' => 'plant & machinery', 'weightage' => 28, 'ledgername' => 'mess cold room', ], ], ]; i want sort each associative array, furniture/fixture , buildings, using key inside each array weightage. how can solve it, output looks this?
array ([building] => array ( [0] => array ( [ledgerid] => 5586c5eec3acc3f42c8b4567 [groupname] => building [weightage] => 26 [ledgername] => main building ) [1] => array ( [ledgerid] => 5586c85cc3acc38e2e8b4567 [groupname] => building [weightage] => 26 [ledgername] => jr.school building ) ) [vehicle] => array ( [0] => array ( [ledgerid] => 55898004c3acc38b758b4567 [groupname] => vehicle [weightage] => 27 [ledgername] => school bus ) [1] => array ( [ledgerid] => 55898078c3acc3c5758b4567 [groupname] => vehicle [weightage] => 27 [ledgername] => staff car - tata mobile ) ) [plant & machinery] => array ( [0] => array ( [ledgerid] => 557af81fc3acc3ed2b8b4567 [groupname] => plant & machinery [weightage] => 28 [ledgername] => tools carpentres ) [1] => array ( [ledgerid] => 557afff7c3acc38d2e8b4567 [groupname] => plant & machinery [weightage] => 28 [ledgername] => water heating equipment ) ) [furniture/fixture] => array ( [0] => array ( [ledgerid] => 557af7adc3acc3ac2b8b4567 [groupname] => furniture/fixture [weightage] => 29 [ledgername] => furniture & fixture ) [1] => array ( [ledgerid] => 558ffa02c3acc331258b4567 [groupname] => furniture/fixture [weightage] => 29 [ledgername] => water coolers,referigerator ) ) ) thanks in advance.
you use usort function, passing callback, this:
function compare($array1, $array2) { $a = $array1['weightage']; $b = $array2['weightage']; if ($a < $b) { return -1; } elseif($b < $a) { return 1; } return 0; } $result = usort($originalarray, "compare");
Comments
Post a Comment