问问题
730 次
3 回答
3
您正在处理一组数组
您的代码应该阅读。
var_dump($bad_words);
echo "Did you mean: <select> \n";
foreach($bad_words["bussiness"] as $suggestion){
echo "<option>".$suggestion."</option> \n";
}
echo "</select>";
如果您只想处理嵌套数组中的第一个元素,您可以使用
var_dump($bad_words);
$term = array_shift($bad_words);
echo "Did you mean: <select> \n";
foreach($term as $suggestion){
echo "<option>".$suggestion."</option> \n";
}
echo "</select>";
于 2013-06-17T22:35:49.070 回答
1
应该:
var_dump($bad_words);
echo "Did you mean: <select> \n";
foreach($bad_words["bussiness"] as $k=>$v){
echo "<option value=\"$k\">".$v."</option> \n";
}
echo "</select>";
于 2013-06-17T22:37:05.250 回答
0
如果它可以帮助您理解数组数组的含义,请阅读。您所做的 var_dump() 就是您问题的答案,让我们来看看。
array(1) { ["bussiness"]=> array(5) { [0]=> string(8) "business" [1]=> string(9) "bossiness"
[2]=> string(8) "busyness" [3]=> string(9) "bushiness" [4]=> string(9) "fussiness" } }
首先我们有array(1)。这告诉我们这$bad_words
是一个包含1 个值的数组(我们还不知道)。好的,到目前为止一切顺利。然后我们有
["bussiness"]=> array(5)
这是数组中的第一个也是唯一的元素$bad_words
。我们有什么?["business"]表示您可以访问该元素的值的键。
$bad_words['bussiness'] is { [0]=> string(8) "business" [1]=> string(9) "bossiness" [2]=>
string(8) "busyness" [3]=> string(9) "bushiness" [4]=> string(9) "fussiness" }
然后您可以看到访问的值是另一个包含 4 个值的数组,并且该数组的每个值的键都是数字键 (0,1,2...)。
看看你foreach loop
这里发生了什么:
foreach($bad_words as $suggestion){ --> $suggestion = array("business", "bossiness", "busy...);
echo "<option>".$suggestion."</option> \n";
}
因此,当您尝试将其打印出来时,您会得到“数组”。这就是为什么上面发布的答案以一种或另一种方式访问 $bad_words 的第一个元素并循环它的值(因为它是一个数组)。
这就是数组数组的含义。下次的提示是执行其他类型的 var_dumps() 例如:
foreach($bad_words as $suggestion){
var_dump($suggestion);
}
这可能会帮助您弄清楚发生了什么。
希望这有助于解决数组有时可能存在的纠结!
于 2013-06-17T22:58:18.883 回答