我在这里疯了。
$val = array(2,3,4,8);
$names = array();
$q = mysql_query("SELECT x FROM y WHERE id IN (".implode(",",$val).")");
while($row = mysql_fetch_array($q)) {
$names[$row['id']] = $row['tName'];
}
以上工作正常。 下面我将创建一个foreach循环:
foreach($val as $values) {
print $names[$values]."<br>";
}
上面只输出一个结果,即使$ val = array(1,2,3,4);
的print_r($名);返回foreach之前,之后和之后的所有数据。
我在这里错过了什么吗?
编辑:
print_r的结果:
Array ( [2] => textA [3] => textB [4] => textC [8] => textD )
答案 0 :(得分:1)
解决方案1
foreach($names as $key=>$val)
{
echo $val."<br/>";
}
解决方案2
foreach($names as $key=>$val)
{
echo $names[$key]."<br/>";
}
答案 1 :(得分:0)
我认为foreach
循环应该是这样的
foreach($names as $key=>$name)
{
echo $name."<br>";
}
OR
foreach($names as $name)
{
echo $name['id']."<br>";
}
这将输出所有结果
答案 2 :(得分:0)
我也来自这种情况,这对我有用,也希望你:
$val = array(1,2,3,4);
$names[] = array();//add this declaration
foreach($val as $values){
print $names[$values];
}
谢谢
答案 3 :(得分:0)
在我的才华中,我创建了这样的$ val数组:
$val = $_GET['val'];
$val = str_replace("[","",$val);
$val = str_replace("]","",$val);
$val = str_replace("\"","",$val);
$val = explode(",",$val);
$ _GET ['val']数据是jquery生成的([“1”,“2”,“3”,“4”])。
这就是问题所在。解决方案是使用json_decode:
json_decode($_GET['val'])
我很抱歉没有看到(并提到它)