Jar*_*red 16 php multidimensional-array unset
不确定为什么会发生这种情况:基本上,我有一个包含以下数组的数组,请参阅var_dump
:
array(2) {
[0]=> array(1) {
[0]=> string(3) "ivr"
}
[1]=> array(1) {
[0]=> string(9) "ivr_dests"
}
}
Run Code Online (Sandbox Code Playgroud)
显然这些数据有点多余,但它是在使用xpath获取值时返回的内容.所以我正在做一个foreach
循环遍历第一个array()
并在第一个数组中分配它的嵌套数组值.
基本上,它应该返回:
array(2) {
[0]=> string(3) "ivr"
[1]=> string(9) "ivr_dests"
}
Run Code Online (Sandbox Code Playgroud)
所以这就是我设置的内容:
foreach($arr as $key => $arr2){
$arr2[$key] = $arr2[$key][0];
unset($arr2[$key][0]); //This returns Fatal error: Cannot unset string offsets
//if I comment out the unset(), $arr[$key] returns the same value as it did (multidim array)
};
//I tried this too:
$i=0;
foreach($arr as $arr2){
$arr2[$i] = $arr2[$i][0];
$i++;
}
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?我应该另辟蹊径吗?
谢谢,
你不需要unset,你用内部数组的值覆盖外部参数而不是整个数组.
$a1 = array("ivr");
$a2 = array("ivr2");
$a3 = array($a1, $a2);
foreach($a3 as $key => $value){
$a3[$key] = $a3[$key][0];
//unset($arr2[$key][0]);
};
var_dump($a3);
Run Code Online (Sandbox Code Playgroud)
我认为你对foreach如何运作感到困惑.
foreach($array as $key => $value)
{
echo $key;
echo $value;
}
Run Code Online (Sandbox Code Playgroud)
将显示数组中每个键/值对的键和值.
我在一个稍微不同的情况下遇到了这个错误,这可能是有用的.
unset($search['param']['complete'])
Run Code Online (Sandbox Code Playgroud)
当$ search ['param']仍然是字符串而不是数组时,这会引发相同的错误.