簡體   English   中英

PHP多維數組搜索,其中鍵等於並返回主鍵

[英]PHP Multidimensional Array search where key equals and return main key

我在php中有一個數組,看起來像下面的結構:

[0] => Array
    (
        [id] => 1242
        [name] => John
        [archived] => 
    )


[1] => Array
    (
        [id] => 1343
        [name] => Ben
        [archived] => 1 
    )


[2] => Array
    (
        [id] => 1149
        [name] => Mark
        [archived] => 
    )

有沒有一種方法可以搜索並取消設置存檔等於1的主鍵的整個數組元素? 因此,例如在此數據示例中,鍵1具有一個稱為“存檔等於1”的子鍵,因此可以取消設置鍵1的整個數組元素嗎?

這應該工作。 請注意,未設置是在原始數組上調用的,而不是$aInner

$aArray = array(
    0 => array('id' => 1242, 'name' = "John", 'archived' => 1),
    1 => array('id' => 1342, 'name' = "Ben", 'archived' => 0)
);

// loop over each element in the array, if its set using the current iPos, unset the key from array
foreach ($aArray as $iPos => $aInner) {
    if($aInner['archived'] === 1){
        unset($aArray[$iPos]);
        continue;        
    }
}

您可以使用array_filter創建滿足您條件的新數組,例如:

$items = array_filter($arr, function($value, $key) {
    return $value['archived'] !== 1
}, ARRAY_FILTER_USE_BOTH);

您可以使用array_filter從數據中創建一個新數組:

$data = [['id' => 1, 'data' => 42, 'archived' => false],
         ['id' => 2, 'data' => 43, 'archived' => true]];
$filtered = array_filter($data, function ($var){ return !$var['archived'];});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM