繁体   English   中英

如何从 Php 中的关联数组中获取特定键 => 值对

[英]How to get A Specifc Key => value pair from an assosative array in Php

我有一个数组

给定数据

Array
(
    [0] => Array
        (
            [name] => /w/s/wsh11-blue_main.jpg
            [image_id] => L3cvcy93c2gxMS1ibHVlX21haW4uanBn
            [file_path] => /w/s/wsh11-blue_main.jpg
            [file_name] => wsh11-blue_main.jpg
            [added_at] => September 19 2019 09:32:24
            [serial_no] => 1
        )

    [1] => Array
        (
            [name] => /w/s/wsh05-purple_main.jpg
            [image_id] => L3cvcy93c2gwNS1wdXJwbGVfbWFpbi5qcGc,
            [file_path] => /w/s/wsh05-purple_main.jpg
            [file_name] => wsh05-purple_main.jpg
            [added_at] => September 19 2019 09:32:24
            [serial_no] => 2
        }

}

现在我的问题是想在另一个数组中获取特定列

我试过array_column($data,'file_path')但不幸的是我得到的只是价值而不是关键

我想得到一个 Expect Array Like

预期结果

Array
    (
        [0] => Array
            (
                [file_path] => /w/s/wsh11-blue_main.jpg
            )

        [1] => Array
            (
                [file_path] => /w/s/wsh05-purple_main.jpg
            )

    }
$arrayRec= array ();

foreach ($arrayRec as $rec){
   $collection[] = array('file_path'=>$rec['file_path']);
}

echo "<pre>";
print_r($collection);
echo "</pre>";

一种方法是使用循环来构建具有预期数据的新数组。 另一种方法是array_map() function。 它遍历每个数组元素并将返回值收集到一个新数组中。

$data = [
    [
        'image_id' => 'L3cvcy93c2gxMS1ibHVlX21haW4uanBn',
        'file_path' => '/w/s/wsh11-blue_main.jpg'
    ],
    [
        'image_id' => 'L3cvcy93c2gwNS1wdXJwbGVfbWFpbi5qcGc',
        'file_path' => '/w/s/wsh05-purple_main.jpg'
    ]
];

$mapped = array_map(
    static function ($file) {
      return ['file_path' => $file['file_path']];   
    },
    $data
);

var_dump($mapped);

Output:

array(2) {
  [0]=>
  array(1) {
    ["file_path"]=>
    string(24) "/w/s/wsh11-blue_main.jpg"
  }
  [1]=>
  array(1) {
    ["file_path"]=>
    string(26) "/w/s/wsh05-purple_main.jpg"
  }
}
$newArray = array();
$arr = array();
foreach($array as $key => $value){
    if($key == "file_path"){
        $arr[$key] = $value;
        $newArray[] = $arr;
    }
}

遍历数组,从内部数组中获取值并将其保存在新数组中。

$finalArray = [];
for($finalData as $innerArray){
            $finalArray[] = array('file_path'=>$innerArray['innerArray']);
}

$finalArray有你需要的。

暂无
暂无

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

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