Для этого есть похожие вопросы и ответы, но ни один из них не соответствует структуре моего массива, поэтому извиняюсь, если я что-то пропустил. Это массив, созданный классом WordPress wpdb:
Array ( [0] => Array ( [meta_id] => 37850 [post_id] => 5548 [meta_key] => Item # [meta_value] => 66002 ) [1] => Array ( [meta_id] => 37851 [post_id] => 5548 [meta_key] => Hex Size [meta_value] => .051" ) [2] => Array ( [meta_id] => 37852 [post_id] => 5548 [meta_key] => Across Flats [meta_value] => 0.051 ) [3] => Array ( [meta_id] => 37853 [post_id] => 5548 [meta_key] => Type [meta_value] => Hexagonal ) [4] => Array ( [meta_id] => 37854 [post_id] => 5548 [meta_key] => Shank [meta_value] => .315" ) ) Array ( [0] => Array ( [meta_id] => 37910 [post_id] => 5553 [meta_key] => Item # [meta_value] => 66008 ) [1] => Array ( [meta_id] => 37911 [post_id] => 5553 [meta_key] => Hex Size [meta_value] => 1/8" ) [2] => Array ( [meta_id] => 37912 [post_id] => 5553 [meta_key] => Across Flats [meta_value] => 0.127 ) [3] => Array ( [meta_id] => 37913 [post_id] => 5553 [meta_key] => Type [meta_value] => Hexagonal ) [4] => Array ( [meta_id] => 37914 [post_id] => 5553 [meta_key] => Shank [meta_value] => .315" ) ) Array ( [0] => Array ( [meta_id] => 37862 [post_id] => 5549 [meta_key] => Item # [meta_value] => 66004 ) [1] => Array ( [meta_id] => 37863 [post_id] => 5549 [meta_key] => Hex Size [meta_value] => 1/16" ) [2] => Array ( [meta_id] => 37864 [post_id] => 5549 [meta_key] => Across Flats [meta_value] => 0.063 ) [3] => Array ( [meta_id] => 37865 [post_id] => 5549 [meta_key] => Type [meta_value] => Hexagonal ) [4] => Array ( [meta_id] => 37866 [post_id] => 5549 [meta_key] => Shank [meta_value] => .315" ) ) Array ( [0] => Array ( [meta_id] => 37886 [post_id] => 5551 [meta_key] => Item # [meta_value] => 66006 ) [1] => Array ( [meta_id] => 37887 [post_id] => 5551 [meta_key] => Hex Size [meta_value] => 3/32" ) [2] => Array ( [meta_id] => 37888 [post_id] => 5551 [meta_key] => Across Flats [meta_value] => 0.095 ) [3] => Array ( [meta_id] => 37889 [post_id] => 5551 [meta_key] => Type [meta_value] => Hexagonal ) [4] => Array ( [meta_id] => 37890 [post_id] => 5551 [meta_key] => Shank [meta_value] => .315" ) )
Мне нужно перечислить их по порядку Array [meta_value]. Затем я использую массив для создания таблицы продуктов в этом порядке. Я работал со следующей функцией, но это дает результат, который не имеет никакого смысла:
function subval_sort($a,$subkey) { foreach($a as $k=>$v) { $b[$k] = strtolower($v[$subkey]); } asort($b); foreach($b as $key=>$val) { $c[] = $a[$key]; } return $c; }
Используйте usort () , например:
$items = [ ['id' => 3, 'item' => 'pc'], ['id' => 1, 'item' => 'mouse'], ['id' => 2, 'item' => 'kb'], ]; function compare_id($a, $b) { if ($a['id'] == $b['id']) return 0; return ($a['id'] < $b['id']) ? -1 : 1; } usort($items, 'compare_id'); var_dump($items);
или используя анонимную функцию
usort($items, function ($a, $b) { if ($a['id'] == $b['id']) return 0; return ($a['id'] < $b['id']) ? -1 : 1; });