繁体   English   中英

将某些元素推入数组php

[英]push certain elements into array php

我想知道是否有一种方法可以将数组的某些元素插入到新数组中。 我的意思是我有一个包含10个对象的数组。 每个对象都有3或4个字段,例如id,name,age,username。 现在我想通过一次调用将所有对象的ID插入到新数组中。

$array = [ 
  [0] => [
      id   =>      
      name =>
  ],
  [1] = > [
      id   =>
      name =>
  ]
]

等等,现在我想通过一次调用将所有对象的所有ID插入新数组。 有没有办法做到这一点?

使用array_map()函数。

这是您的解决方案:-

 $ids = array_map( function( $arr ){
                    return $arr["id"];
                }, $arr );

 echo '<pre>'; print_r($ids);

一个基本的foreach循环会很好地完成工作

$firstArray = array(
  array(
    'id' => 1,
    'name' => 'abc'
  ),
  array(
    'id' => 2,
    'name' => 'def'
  ),
  array(
    'id' => 3,
    'name' => 'gh'
  )
);

$onlyIds = array();
$onlyKeys = array();

//To get the array value 'id'
foreach($firstArray as $value){
  $onlyIds[] = $value['id'];
}

//To get the array keys
foreach($firstArray as $key => $value){
  $onlyKeys[] = $key;
}

您可以使用array_walk,可以将其视为“单个调用”

$array = array(0 => array('id', 'name', 'age'), 1 => array('id', 'name', 'age'));
array_walk($array, function($item, $key) {
    // $key is 0 or 1
    // $item is either id, name, age
});

您可以使用array_column

$arr = [ ['id' => 1, 'username' => 'a'], ['id' => 2, 'username' => 'b'] ];
$ids = array_column($arr, 'id')
$ids == [1, 2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM