下面是我的代码,
<? foreach($goodsview as $key=>$value)
echo $value;
?>
上面的代码通过显示数组中的所有值完美地工作,现在我需要perticular
使用 foreach 循环本身来获取值,
echo $value['myvalue'] ;
但我得到一个错误“非法字符串偏移”我的价值“我们如何解决这个问题?
这行不通,因为$values
不存在
foreach($goodsview as $key => $value)
echo $values;
如果$value
是字符串或数字等,这可能有效,但如果它是数组则无效。
foreach($goodsview as $key => $value)
echo $value;
字符串偏移错误是指您访问数组之类的字符串,但您使用的键不存在。
让我解释。
$string = "Jake";
echo $sting[0]; //outputs 'J'
echo $sting[3]; //outputs 'e'
echo $sting['doom']; // will fail
$array = array("Jake", "doom"=>3);
echo $sting[0]; //outputs 'Jake'
echo $sting[3]; //will fail
echo $sting['doom']; // outputs 3
字符串也是如此$value
,而不是数组。
您也可以像这样访问您的数组$goodsview[$key]
,这将为您提供与$value
.
好吧,让我回答我自己的问题,实际上我的数组是一个single dimentional
所以这个方法不起作用
echo $value['myvalue'] ;
所以我们必须使用
echo $arr[$key]
但它显示了多个元素,就好像它在 foreachloop 中运行一样,所以不使用 foreach 循环我们必须显示类似的结果
echo $goodsview['myvalue']
希望将来遇到类似问题的人会有所帮助...谢谢大家回答这个问题,
变量$value
不是数组而是字符串。这就是显示错误消息的原因。
没有看到代码没有太多建议。但总的来说,这就是 foreach 循环的工作方式:
假设您的数组结构如下。
Array
(
[name] => Tom
[gender] => Male
[age] => 18
)
要显示所有元素,即'Tom', 'Male', '18',您可以执行以下操作:
foreach ($array as $key => $value) {
echo $arr[$key].'<br>';
}
输出:
Tom
Male
18
要仅检索特定值:
例如,如果您想检索此人的姓名,您可以执行以下操作:
echo $arr['name']; //Tom
echo $arr['gender']; //Male
echo $arr['age']; //18
希望这可以为您解决问题!:)
$value
保存foreach
循环中的值。它与 相同$goodsview[$key]
。如果您只想要一个值,请不要使用循环。$goodsview['myvalue']
如果您的 Array 看起来像$goodsview = array('myvalue' => 'This would be the value')
.
它可能是在黑暗中拍摄的,但看起来你可能正在处理类似循环的东西来显示选择元素的选项。如果您只是想要一个特定的数组元素,通常不会在循环上浪费时间。
这是否给您任何想法:
<select name="myvalue">
<?php
foreach($goodsview as $key=>$value) {
$seltxt='';
// assume $myvalue is the previously posted value from the select
// if the $key matches the posted $myvalue - mark this option as selected
if (!strcmp($key,$myvalue)) $seltxt=' selected';
echo "<option value=\"$key\"$seltxt>$value</option>\n";
}
?>
</select>
只是一个想法。