我有一个数组格式。
Array
(
[0] => Array
(
[order_id] => 1
)
[1] => Array
(
[order_id] => 11
)
[2] => Array
(
[order_id] => 12
)
)
应该将数组格式更改为格式:
[1,11,12];
请帮忙。先谢谢你。
答案 0 :(得分:3)
对于(PHP 5> = 5.5.0,PHP 7),您可以使用array_column
并且低于您可以使用array_map
函数(对于PHP< 5.3),您需要定义saperate array_map
的函数,而不是匿名函数。
$array = array
(
'0' => array
(
'order_id' => 1
),
'1' => array
(
'order_id' => 11
),
'2' => array
(
'order_id' => 12
)
);
$new_array = array_column($array, 'order_id');
print_r($new_array);
$new_array = array_map(function($element) {
return $element['order_id'];
}, $array);
print_r($new_array);
<强>输出强>
Array
(
[0] => 1
[1] => 11
[2] => 12
)
答案 1 :(得分:0)
这个怎么样?
$arr = Array
(
0 => Array
(
'order_id' => 1
),
1 => Array
(
'order_id'=> 11
),
2 => Array
(
'order_id' => 12
),
);
$newArr = array();
foreach($arr as $x){
foreach($x as $y){
$newArr[] = $y;
}
}
答案 2 :(得分:0)
你可以试试这个:
$ar = array(array('order_id' => 1), array('order_id' => 11), array('order_id' => 12));
$temp = array();
foreach ($ar as $val) {
$temp[] = $val['order_id'];
}
print_r($temp);
答案 3 :(得分:0)
基本上,您正在寻找扁平阵列。 This SO answer有一些关于如何做到这一点的提示。此外,this Github gist还有一个高尔夫版本。
对于您问题中的具体情况,应该这样做
function specificFlatten($arr) {
if (!is_array($arr)) return false;
$result = [];
foreach ($arr as $arr_1) {
result[] = $arr_1['order_id'];
}
return $result;
}