获取特定值时,foreach循环获取错误

时间:2013-07-19 00:30:08

标签: php arrays

这是我的代码,

<? foreach($goodsview as $key=>$value)
echo $value;
?>

上面的代码通过显示数组中的所有值完美地工作,现在我需要使用foreach循环本身来获取perticular值,

echo $value['myvalue'] ;

但是我得到了一个错误 `非法字符串偏移'myvalue' 我们该如何解决这个问题?

5 个答案:

答案 0 :(得分:0)

变量$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

希望这能为你解决问题! :)

答案 1 :(得分:0)

$value保留foreach循环中的值。它与$goodsview[$key]相同。如果您只想要一个值,那么不要使用循环。如果您的数组看起来像$goodsview['myvalue'],则$goodsview = array('myvalue' => 'This would be the value')可以保留一个值。

答案 2 :(得分:0)

这不起作用,因为$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相同。

答案 3 :(得分:0)

它可能是在黑暗中拍摄但看起来你可能在像循环这样的东西上显示选择元素的选项。 通常情况下,如果您只是想要一个特定的数组元素,就不会浪费时间。

这会给你任何想法:

<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>

只是一个想法。

答案 4 :(得分:0)

好吧,让我回答我自己的问题,实际上我的数组是single dimentional所以这个方法不起作用

echo $value['myvalue'] ;

所以我们必须使用

echo $arr[$key]

但它显示多个元素,好像它在foreachloop中运行一样,所以不使用foreach循环我们必须显示类似

的结果

echo $goodsview['myvalue']

希望如果他们遇到类似的问题,将来会帮助某人...谢谢大家回答这个问题,