不确定为什么会这样:基本上,我有一个包含以下数组的数组,请参阅 var_dump
:
array(2) {
[0]=> array(1) {
[0]=> string(3) "ivr"
}
[1]=> array(1) {
[0]=> string(9) "ivr_dests"
}
}
显然此数据有点多余,但它是使用 xpath 获取值时返回的数据。所以我正在做一个 foreach
来遍历第一个 array()
并在第一个数组中分配它的嵌套数组值。
基本上,它应该返回这个:
array(2) {
[0]=> string(3) "ivr"
[1]=> string(9) "ivr_dests"
}
所以这是我设置的:
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++;
}
知道我做错了什么吗?我应该换一种方式吗?
谢谢,
最佳答案
您不需要取消设置,您是用内部数组的值而不是整个数组的值覆盖外部参数。
$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);
我认为您对 foreach 的工作原理感到困惑。
foreach($array as $key => $value)
{
echo $key;
echo $value;
}
将显示数组中每个键/值对的键和值。
关于php - fatal error : Cannot unset string offsets error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289714/