亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP/Laravel - 從鍵有數據的數組中獲取鍵名稱

PHP/Laravel - 從鍵有數據的數組中獲取鍵名稱

PHP
月關寶盒 2023-10-22 22:04:18
我有以下數組$items:array:3 [▼  0 => array:9 [▼    "qty" => 1    "name" => "Guide, interlocked slats, R Commodity code: 39239000 / Country of origin: PL. Delivery note 838174147 from 12.09.2019 PC 1,50/ 10"  ]  1 => array:9 [▼    "qty" => null    "name" => "Guide, interlocked slats, L Commodity code: 39239000 / Country of origin: PL. Delivery note 838174147 from 12.09.2019 PC"  ]  2 => array:9 [▼    "qty" => null    "name" => "Bottom groove set L + R Commodity code: 39239000 / Country of origin:"  ]]我試圖找到在所有三個子數組中都有值的特定鍵。在本例中,這將是 key name,因為該特定鍵在所有三個數組中都有一個值。我嘗試為此編寫一個函數,如下所示:function getKeysWithData(array $items): array{    //Get the key(s) that has region data for all items.    $keysWithData = collect($items)->map(function ($item) {        return array_keys(collect($item)->filter()->toArray()); //filter will remove all null    })->flatten()->unique()->toArray();   }上面的函數返回一個數組,其中包含具有某些值的鍵的名稱。所以對于上面的$items,它將返回:array:2 [▼  0 => "qty"  1 => "name"]這是因為 和 兩者qty在name某些時候都包含一些價值。但是,它應該只返回name.我該怎么做,所以它只會返回所有數組中都有數據的鍵的名稱?
查看完整描述

2 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

雖然這不是 Laravel 和所有這些函數式風格,但至少它只在數組上循環一次:


// Take first element so as to know what keys do we have:

$keys = $items[0];

foreach ($items as $item) {

    foreach ($item as $key => $value) {

        if ($value === null) {

            // unset the key which has NULL value

            unset($keys[$key]);

        }

        

        // if there no keys left - break all loops

        if (empty($keys)) {

            break 2;

        }

    }

}

print_r(array_keys($keys));

還有小提琴。



查看完整回答
反對 回復 2023-10-22
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

對二維數組使用兩次 foreach 循環。前任: '''


       foreach($array as $k=>$v){

        //$k is 0

        //$v contains another inside array so use another foreach loop

         foreach($v as $x => $y){

    

       if($y != "null" && $x != "null" && $x == "name"){

    echo $x;  //it contains key ex : name

    echo $y;  //it contains value ex : 1

   $z[$x]=$y; // it contains only name key

    }

          

        }

        

        }

'''


查看完整回答
反對 回復 2023-10-22
  • 2 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號