我有以下数组
Array
(
[0] => Array
(
[id] => 1120
)
[1] => Array
(
[id] => 1127
)
[2] => Array
(
[id] => 16101
)
[3] => Array
(
[id] => 16441
)
[4] => Array
(
[id] => 18447
)
)
我想将上面的数组转换为这种形式:
Array
(
[0] => 1120
[1] => 1127
[2] => 16101
[3] => 16441
[4] => 18447
)
但条件是必须不使用foreach 。这可能吗?
答案 0 :(得分:4)
PHP解决方案> = 5.5 - array_column
函数:
// assuming $arr is your initial array
$result = array_column($arr, 'id');
var_dump($result);
// the output:
Array
(
[0] => 1120
[1] => 1127
[2] => 16101
[3] => 16441
[4] => 18447
)
答案 1 :(得分:0)
您可以使用array_column功能
执行此操作$final_array = array_column($your_array, "id");
答案 2 :(得分:0)
您可以使用array_column
执行此操作。
var_dump(array_column([['id' => 1],['id'=>2]], 'id'));
/*
gives you..
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
*/
答案 3 :(得分:0)
array_combine(array_keys($arr), array_map(function($item) { return $item['id']; }, $arr));
答案 4 :(得分:0)
对于PHP版本>=4.0.6
,您可以像{/ p>一样使用array_map
$arr = array(array('id' => 1),array('id' => 2),array('id' => 3));
function call_function($v){
return $v['id'];
}
$result = array_map('call_function',$arr);
print_r($result);
相反,您可以简单地使用reset
函数,因为@Ghost表示如
$arr = array(array('id' => 1),array('id' => 2),array('id' => 3));
$result = array_map('reset',$arr);
print_r($result);
<强>输出强>
Array
(
[0] => 1
[1] => 2
[2] => 3
)
答案 5 :(得分:0)
$arrFirstArray = array(
'0' => array(
'id' => 1120
),
'1' => array(
'id' => 1127
),
'2' => array(
'id' => 16101
),
'3' => array(
'id' => 16441
),
'4' => array(
'id' => 18447
));
echo $intFirstArray = count($arrFirstArray);
$arrSecondArray = array();
for ($intI = 0; $intI < $intFirstArray; $intI++)
{
global $arrSecondArray;
$arrSecondArray[] = $arrFirstArray[$intI]['id'];
}
echo '<pre>';
print_r($arrSecondArray);
这肯定会奏效。