Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中不使用foreach将内部数组转换为外部数组的索引?_Php_Arrays - Fatal编程技术网

在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我已经更新了我的回答向下投票的原因。所以我可以改进我的回答我收到了通知,实际上那是我的赞成票,很有趣,你在这里有唯一的反对票,你有一个粉丝跟着你哈哈