当我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" } }
我试图将每个元素都放在一个单独的内部。
我认为这就像使用foreach迭代数组并回显数组中的每个元素一样简单,但是我正在尝试并且它似乎不起作用。
我得到的输出是两个s表示Array而另一个是空白。
所以标记是这样的:
<select>
<option>Array</option>
<option></option>
</select>
我做错了什么,为什么代码不回显数组的内容。它甚至没有迭代整个数组,只有两个项目,因此两个s。
这是我的代码:
var_dump($bad_words);
echo "Did you mean: <select> \n";
foreach($bad_words as $suggestion){
echo "<option>".$suggestion."</option> \n";
}
echo "</select>";
答案 0 :(得分: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>";
答案 1 :(得分: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>";
答案 2 :(得分: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
中的第一个也是唯一一个元素。我们有什么? [“bussiness”] 代表键,您可以通过它来访问该元素的值。
$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);
}
这可能会帮助您弄清楚发生了什么。
希望这有助于解决数组有时可能出现的纠结!