如何在PHP中展开数组?

vuktfyat  于 2022-10-30  发布在  PHP
关注(0)|答案(2)|浏览(327)

我有一个包含4个数组的数组,每个数组都有一个值。

array(4) {
  [0]=>
  array(1) {
    ["email"]=>
    string(19) "test01@testmail.com"
  }
  [1]=>
  array(1) {
    ["email"]=>
    string(19) "test02@testmail.com"
  }
  [2]=>
  array(1) {
    ["email"]=>
    string(19) "test03@testmail.com"
  }
  [3]=>
  array(1) {
    ["email"]=>
    string(19) "test04@testmail.com"
  }
}

什么是最好的(=最短的,首选原生PHP函数)方法来扁平化数组,使其只包含电子邮件地址作为值:

array(4) {
  [0]=>
  string(19) "test01@testmail.com"
  [1]=>
  string(19) "test02@testmail.com"
  [2]=>
  string(19) "test03@testmail.com"
  [3]=>
  string(19) "test04@testmail.com"
}
igsr9ssn

igsr9ssn1#

在PHP 5.5中,您可以使用array_column

$plucked = array_column($yourArray, 'email');

否则,请使用array_map

$plucked = array_map(function($item){ return $item['email'];}, $yourArray);
n8ghc7c1

n8ghc7c12#

你可以使用RecursiveArrayIterator,它甚至可以扁平化多嵌套数组。

<?php
$arr1=array(0=> array("email"=>"test01@testmail.com"),1=>array("email"=>"test02@testmail.com"),2=> array("email"=>"test03@testmail.com"),
    3=>array("email"=>"test04@testmail.com"));
echo "<pre>";
$iter = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr1));
$new_arr = array();
foreach($iter as $v) {
    $new_arr[]=$v;
}
print_r($new_arr);

一个月一个月

Array
(
    [0] => test01@testmail.com
    [1] => test02@testmail.com
    [2] => test03@testmail.com
    [3] => test04@testmail.com
)

相关问题