在PHP中不使用foreach将内部数组转换为外部数组的索引?
我有以下数组在PHP中不使用foreach将内部数组转换为外部数组的索引?,php,arrays,Php,Arrays,我有以下数组 Array ( [0] => Array ( [id] => 1120 ) [1] => Array ( [id] => 1127 ) [2] => Array ( [id] => 16101 ) [3] => Array
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的情况下执行此操作。这可能吗?PHP的解决方案>=5.5-
array\u 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
)
PHP解决方案>=5.5-
数组\u列
函数:
// 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
)
您可以使用函数
你可以使用这个函数
你可以用它来做这件事
var_dump(array_column([['id' => 1],['id'=>2]], 'id'));
/*
gives you..
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
*/
你可以用它来做这件事
var_dump(array_column([['id' => 1],['id'=>2]], 'id'));
/*
gives you..
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
*/
对于PHP版本
>=4.0.6
,您只需使用
相反,您可以简单地使用所说的函数
$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
)
对于PHP版本
=4.0.6
,您只需使用
相反,您可以简单地使用所说的函数
$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
)
$arrFirstArray=array(
“0”=>数组(
“id”=>1120
),
“1”=>数组(
“id”=>1127
),
“2”=>数组(
“id”=>16101
),
“3”=>数组(
“id”=>16441
),
“4”=>数组(
“id”=>18447
));
echo$intFirstArray=计数($arrFirstArray);
$arrSecondArray=array();
对于($intI=0;$intI<$intFirstArray;$intI++)
{
全球美元阵列;
$arrSecondArray[]=$arrsfirstarray[$intI]['id'];
}
回声';
打印(数组);
这肯定会起作用。$arrFirstArray=array(
“0”=>数组(
“id”=>1120
),
“1”=>数组(
“id”=>1127
),
“2”=>数组(
“id”=>16101
),
“3”=>数组(
“id”=>16441
),
“4”=>数组(
“id”=>18447
));
echo$intFirstArray=计数($arrFirstArray);
$arrSecondArray=array();
对于($intI=0;$intI<$intFirstArray;$intI++)
{
全球美元阵列;
$arrSecondArray[]=$arrsfirstarray[$intI]['id'];
}
回声';
打印(数组);
这肯定会起作用。但是为什么不想使用foreach函数呢。有什么问题?foreach函数适用于这种类型的场景永不结束的数组列answer@Rajender因为在我的例子中有数千个条目,如果我使用foreach或任何其他循环,那么它会降低服务器速度。@Insomania ok,您可以使用array\u column函数。有关详细信息,请参阅不希望使用foreach函数的原因。有什么问题?foreach函数适用于这种类型的场景永不结束的数组列answer@Rajender因为在我的例子中有数千个条目,如果我使用foreach或任何其他循环,那么它会降低服务器速度。@Insomania ok,您可以使用array\u column函数。欲了解更多信息,请脱帽!!老兄,太谢谢你了,所以总是节省我的时间:)脱帽!!伙计,非常感谢你,所以总是能节省我的时间:)用火箭筒杀蚊子:)用火箭筒杀蚊子:)或者干脆
$result=array\u map('reset',$arr)
是的@Ghost我已经更新了我的答案。投票人发布了投票失败的原因。所以我可以改进我的回答我收到了通知,实际上那是我的向上投票,有趣的是你在这里有唯一的向下投票,你有一个粉丝跟着你哈哈:Dor只是简单地$result=array\u map('reset',$arr)
是的你是对的@Ghost我已经更新了我的回答向下投票的原因。所以我可以改进我的回答我收到了通知,实际上那是我的赞成票,很有趣,你在这里有唯一的反对票,你有一个粉丝跟着你哈哈