【问题标题】:PHP add values from multidimensional array into one arrayPHP将多维数组中的值添加到一个数组中
【发布时间】:2021-12-29 03:36:21
【问题描述】:

如果我有一个这样的数组$array:

Array ( 
    [0] => Array ( 
        [id] => 11 
        [name] => scifi 
        ) 
    [1] => Array (
         [id] => 12 
         [name] => documetary 
     ) 
    [2] => Array ( 
        [id] => 10 
        [name] => comedy 
    ) 
)

我怎么能把它变成简单的:

Array ( 11, 12, 10 ) 没有键值对。

我试图从每个数组中仅提取 id 并将它们添加到 1 个数组中。我正在尝试使用 foreach;

$ids = [];

if ( $array ) {
  foreach ( $array as $item ) {
    $ids[] = $term->id;
  }
}

print_r($ids);

它只返回 3 个空数组 Array ( [0] => [1] => [2] => )

【问题讨论】:

  • 不用自己循环,直接用php.net/manual/en/function.array-column.php
  • @CBroe 谢谢,这是一个很酷的功能!但它仍然返回更多数组Array ( [0] => 11 [1] => 12 [2] => 10 ) ,而不是仅返回 1 个数组中的 id。现在我应该循环过去吗?
  • 你似乎很困惑,array_column() 返回一个包含三个键值对的数组 - 即结果符合预期1 个数组中的 ids。
  • 一个数组将 always 有 1 个或多个键值对。也许你真的需要一个字符串:"11, 12, 10"?或具有一个键值对的数组:[0] => "11, 12, 10"?
  • $array = array_column($array, 'id'); 或 $string = implode(', ', array_column($array, 'id'));

标签: php arrays


【解决方案1】:

使用循环,您可以这样做:

$arr1 = [
 ['id'=>11,'name'=>'scifi'],
 ['id'=>12,'name'=>'documentry'],
 ['id'=>10,'name'=>'comedy'],
];

$arr2 = [];
foreach($arr1 as $internal){
  array_push($arr2,$internal['id']);
}

print_r($arr2);

这里我们访问所有内部数组的 ID 并将它们插入到一个新数组中。

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多