【问题标题】:array containing two arrays with no key包含两个没有键的数组的数组
【发布时间】:2013-07-17 14:39:43
【问题描述】:

当我发现一个数组 ($array) 包含两个没有键的数组时,我正在压缩我的脚本:

array(19) {
  ["id"]=>
  string(3) "243"
  ["var"]=>
  string(4) "test"
}

array(10) {
  ["id"]=>
  int(243)
}

它们都包含不同的数据,我只是删除了大部分数据以显示我在说什么。现在我最终会找到这个问题的原因并修复它,但我需要一个临时修复来从第一个数组中获取 var 的值。目前,当我使用 print_r 和 var_dump 时,我确实得到了 var 的实际值,但也得到了 NULL。出于这个原因,我似乎无法将 var 的值存储在变量中。

有什么想法吗?

这是完整的数组(屏蔽了一些敏感数据)

Array
(
    [id] => 243
    [ordering] => 0
    [state] => 1
    [checked_out] => 203
    [checked_out_time] => 2013-07-17 14:28:15
    [status] => new
    [order_id] => 84
    [username] => 267
    [ankleside] => left
    [engraving] => left
    [serial] => 152
    [color_padding] => left
    [color_shell] => left
    [scan] => SCAN_2013-07-17_xxxxxx_X_hotmail.com_LEFT.PNG
    [workfile] => WORK_2013-07-17_xxxxxx_X_hotmail.com_LEFT.png
    [stlfile] => 2013-07-17_xxxxxx_X_hotmail.com_LEFT_.jpg
    [timespent] =>
    [created_by] => 203
)

Array
(
    [id] => 243
    [status] => new
    [username] => 267
    [ankleside] => left
    [engraving] => left
    [scan] => SCAN_2013-07-17_xxxxxxx_X_hotmail.com_LEFT.PNG
    [workfile] =>
    [stlfile] => fb-foto.png
    [issues] =>
)

【问题讨论】:

  • “id”和“var”不是键吗?
  • 它们不是“没有键的数组”。数组的每个元素都有一个对应的键。上面显示的输出是传递给var_dump() 的两个单独变量的结果
  • 请向我们展示您的 PHP 代码以避免误解
  • 你确定它不是在循环内还是什么东西使它var_dump() 两次?尝试在var_dump(); 之后添加echo "done";
  • @Ortix92 I'm just passing a single variable to var_dump() - 这根本不可能。你确定你没有循环调用它吗?

标签: php arrays


【解决方案1】:

不知何故,var_dump(); 被调用了两次。尝试在var_dump($array); 后添加echo "done"; 进行验证。

您还可以添加debug_print_backtrace(); 以帮助您了解它是如何被调用两次的。 http://www.php.net/manual/en/function.debug-print-backtrace.php

【讨论】:

  • 此时,它可能只是隐藏在(可能相当大的)代码块中的某个地方。似乎这只是一个追捕它的问题,而不是 SO 的真正用途......
  • @steven 没有意义。这是 200 行代码,我敢肯定你不想筛选。最重要的是,该方法返回到一个父方法,该方法是另外 600 行代码。我的方法中没有循环。所以它必须在父母中
  • @Ortix92 查看更新的答案,尝试debug_print_backtrace(); 可能会帮助您解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
相关资源
最近更新 更多