簡體   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