![](/img/trans.png)
[英]Show first 4 elements from one array and first 1 element from another array, untill array elements exists
[英]show elements of array with determined value first
我有這個數組:
$array = [
['brand' => 'bmw', 'type' => 'car'],
['brand' => 'yahaha', 'type' => 'bike'],
['brand' => 'specialized', 'type' => 'bycicle'],
['brand' => 'toyota', 'type' => 'car'],
['brand' => 'honda', 'type' => 'bike']
]
我怎樣才能先顯示“汽車”,然后再顯示所有其他汽車? 我要瘋了。 像這樣的東西-> bmw, toyota, yahaha, specialized, honda
。
提前 tks
uasort
是您的選擇:
<?php
$array = [
['brand' => 'bmw', 'type' => 'car'],
['brand' => 'yahaha', 'type' => 'bike'],
['brand' => 'specialized', 'type' => 'bycicle'],
['brand' => 'toyota', 'type' => 'car'],
['brand' => 'honda', 'type' => 'bike']
];
function cmp($a, $b) {
return $a['type'] == 'car' ? -1 : 1;
}
uasort($array, 'cmp');
print_r($array);
Array
(
[0] => Array
(
[brand] => bmw
[type] => car
)
[3] => Array
(
[brand] => toyota
[type] => car
)
[4] => Array
(
[brand] => honda
[type] => bike
)
[2] => Array
(
[brand] => specialized
[type] => bycicle
)
[1] => Array
(
[brand] => yahaha
[type] => bike
)
)
要提取brand
列:
print_r(array_column($array, 'brand'));
Array
(
[0] => toyota
[1] => bmw
[2] => yahaha
[3] => specialized
[4] => honda
)
最簡單的方法是在 output 時只通過陣列兩次,第一次跳過非汽車,第二次跳過汽車。
foreach ($array as $vehicle) {
if ($vehicle['type'] == 'car') {
echo $vehicle['brand'];
}
}
foreach ($array as $vehicle) {
if ($vehicle['type'] != 'car') {
echo $vehicle['brand'];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.