我有一个简单的数组$arr
,其键以ab-
或xy-
开头,且顺序不同。我想先使用ab-
和它们xy-
遍历键。
$arr = [
'ab-283' => 'Hi', // 1 (loop through this first)
'xy-153' => 'Ok', // 5
'ab-232' => 'Hello', // 2 (loop this through second...)
'ab-164' => 'Cool', // 3
'xy-164' => 'Hmm', // 6
'ab-164' => 'Yo', // 4
'xy-164' => 'Yup' // 7
];
foreach ($arr as key => $value) {
}
这将是输出:
Hi
Hello
Cool
Yo
Ok
Hmm
Yup
那么,是否有先循环遍历ab-
然后遍历xy-
的地方?谢谢
答案 0 :(得分:1)
如果您不希望按键对它进行完全排序(我想您不希望这样做,因为它不像您显示的输出中那样),那么我认为您只需要经历两次即可。
foreach (['ab', 'xy'] as $prefix) {
foreach ($arr as $key => $value) {
if (substr($key, 0, 2) == $prefix) {
echo $value;
}
}
}
答案 1 :(得分:1)
您可以先按键对$ arr数组进行排序。
ksort($arr);
然后进行foreach。 您的数组多次具有相同的键(xy-164),因此输出结果与您发布的结果不同,而是:
array(5) {
["ab-164"]=>
string(2) "Yo"
["ab-232"]=>
string(5) "Hello"
["ab-283"]=>
string(2) "Hi"
["xy-153"]=>
string(2) "Ok"
["xy-164"]=>
string(3) "Yup"
}