php - fatal error : Cannot unset string offsets error?

标签 php multidimensional-array unset

不确定为什么会这样:基本上,我有一个包含以下数组的数组,请参阅 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/

相关文章:

javascript - 增量按钮在 magento 中无法正常工作

C:多维数组实现不起作用,给出不同的值

c# - 如何在 C# 中创建锯齿状数组?

java - 返回添加到板上的新 Cell 的数量

php - 取消设置 php session 变量

PHP/MySQL - 散列到 BIGINT 以确保不重复

javascript - 带 for 语句的空表单

php - unset 关键字带有下划线,就像存在语法错误一样

php - unset() 在类方法中不起作用

php - 使用 PHP 将 CSV 上传到 MYSQL