嗨,我有一個關于多維陣列的問題。我有一組看起來像這樣的陣列
array:3 [▼
0 => array:1 [▼
"tree" => "0"
]
1 => array:1 [▼
"tree" => "2"
]
2 => array:1 [▼
"tree" => "0"
]
]
陣列來自
dd($this->treeArray);
我如何獲取值為 0 的陣列。預期結果/過濾器例如:
array:2 [▼
0 => array:1 [▼
"tree" => "0"
]
1 => array:1 [▼
"tree" => "0"
]
]
or
array:1 [▼
0 => array:1 [▼
"tree" => "2"
]
]
如果更改索引是不可能的,沒關系..謝謝
uj5u.com熱心網友回復:
當你使用 Laravel 時,你可以使用這樣的陣列助手
你可以這樣使用:
use Illuminate\Support\Arr;
$newTreeArray = Arr::where($this->treeArray, function ($tree) => $tree['tree'] === "0");
uj5u.com熱心網友回復:
你想要 in_array() 嗎?
$arraysContainingZero=[];
foreach($this->treeArray as $wutkey => $wut){
if(in_array("0", $wut, true)){
$arraysContainingZero[$wutkey] = $wut;
}
}
var_dump($arraysContainingZero);
uj5u.com熱心網友回復:
PHP中有很多內置函式可用于對陣列進行操作。您可以在此處查看完整串列:https ://www.php.net/manual/en/ref.array.php
其中一個函式稱為 array_filter ( https://www.php.net/manual/en/function.array-filter.php )。該函式遍歷陣列中的每個值,將它們傳遞給回呼函式。如果回呼函式回傳 true,則將陣列中的當前值回傳到結果陣列中。
因此,在您的情況下,您希望使用回呼呼叫 array_filter,如果值為 0,則回傳 true。示例:
$input = [
[ 'tree' => 1 ],
[ 'tree' => 0 ],
[ 'tree' => 0 ],
];
$output = array_filter($input, function($arr) {
return $arr['tree'] === 0;
});
var_dump($output);
// result
array(2) {
[1]=>
array(1) {
["tree"]=>
int(0)
}
[2]=>
array(1) {
["tree"]=>
int(0)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428467.html
