我有一个如下所示的多维数组。
array:1 [
0 => array:3 [
"picture_id" => "0"
"car_name" => "CA"
"from" => "2020"
"to" => "2020"
]
]
Run Code Online (Sandbox Code Playgroud)
我需要从上面的数组中删除from&to并以相同的结构返回结果。
我试过以下代码
$whitelist = array("from", "to");
$finalArray = [];
foreach ($records as $record) {
foreach ($record as $key => $item) {
if (!in_array($key, $whitelist)) {
$finalArray[$key] = $item;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到的结果不是这样的多维数组:
array:1 [
"picture_id" => "0"
"car_name" => "CA"
]
Run Code Online (Sandbox Code Playgroud)
我的预期结果是:
array:1 [
0 => array:3 [
"picture_id" => "0"
"car_name" => "CA"
]
]
Run Code Online (Sandbox Code Playgroud)
你可以尝试这样的事情:
$array = [
[
"picture_id" => "0",
"car_name" => "CA",
"from" => "2018",
"to" => "2020"
],
[
"picture_id" => "1",
"car_name" => "WA",
"from" => "2010",
"to" => "2019"
]
];
$whitelist = array("from", "to");
$finalArray = [];
foreach ($array as $k => $record) {
foreach ($record as $key => $item) {
if (!in_array($key, $whitelist)) {
$finalArray[$k][$key] = $item;
}
}
}
print("<pre>".print_r($finalArray,true)."</pre>");
Run Code Online (Sandbox Code Playgroud)
会打印出什么:
Array
(
[0] => Array
(
[picture_id] => 0
[car_name] => CA
)
[1] => Array
(
[picture_id] => 1
[car_name] => WA
)
)
Run Code Online (Sandbox Code Playgroud)
一个简短的解释......基本上你在多维数组上循环
foreach($array as $key => $value)
Run Code Online (Sandbox Code Playgroud)
其中 value 是“inner”数组,所以为了从内部删除一些元素,并创建一个新的多维数组,你必须使用原始数组中的键,就像我的例子一样。所以你实际上制作了一个数组,如:
$newArray[$key] = $innerArray
Run Code Online (Sandbox Code Playgroud)
这为您提供了多维数组。BR
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |