【发布时间】:2018-05-14 20:20:21
【问题描述】:
我有一个来自 3rd 方插件的返回字符串,它看起来像数组中的 var_dump。我正在尝试解析为有效的关联数组。查看各种示例并使用以下代码进行一些测试。最后一段演示了我遇到的问题。我正在尝试将数据解析为字符串,然后在我的数据字符串完成后以编程方式创建一个数组。当我在 $vegetables2 上执行 print_r 时,我得到:
Array([0] => “葫芦”=”40 千焦”,”朝鲜蓟”=”105 千焦”,”木薯”=”550 千焦”)
并且 echo $vegetables2["Artichoke"] 没有产生任何价值。有人可以指导我使用正确的语法来创建与前两个示例等效的数组吗?
//this works:
echo "From creating the entire array with a static string:<br/>";
$vegetables = array("Gourd"=>"40 kilojoules", "Artichoke"=>"105 kilojoules", "Cassava"=>"550 kilojoules");
echo "Artichoke: " . $vegetables["Artichoke"] . "<br/>";
//this works too
$vegetables1['Gourd'] = "40 kilojoules";
$vegetables1['Artichoke'] = "105 kilojoules";
$vegetables1['Cassava'] = "550 kilojoules";
echo "From creating one element at a time:<br/>";
echo "Artichoke: " . $vegetables1["Artichoke"] . "<br/>";
//this doesn't work
$strData = "\"Gourd\"=\"40 kilojoules\",";
$strData = $strData . "\"Artichoke\"=\"105 kilojoules\",";
$strData = $strData . "\"Cassava\"=\"550 kilojoules\"";
echo $strData ."<br/>";
$vegetables2 = array($strData);
print_r($vegetables2);
echo "Artichoke: " . $vegetables2["Artichoke"];
【问题讨论】:
-
你能展示一个输入数据的例子吗?
-
105 Kilojoule Artichoke 是我的 Flaming Lips 翻唱乐队的名字。
-
这只是将你得到的整个字符串组成一个元素数组:
$vegetables2 = array($strData);... 请向我们展示你试图解析的 RAW 数据的示例。它将揭示许多寻求答案的途径。 -
插件返回的输入数据是这样过来的: Array ( [Gourd] => 40 千焦 [Artichoke] => 105 千焦 [Casava] => 550 千焦) 键是没有用引号括起来,而是用括号括起来,并且没有逗号分隔键/值对。
-
嗯,有这个:stackoverflow.com/questions/3531857/…,但如果可能的话,我宁愿不使用以 var_dump 格式生成输出的插件。
标签: php arrays associative