PHP-根据阵列的ID号显示名称

时间:2018-09-17 20:21:57

标签: php arrays

我有一个使用php的数组:

$array = array(
  array("id" => "1", "name" => "name1"),
  array("id" => "2", "name" => "name2"),
  array("id" => "3", "name" => "name3"),
  array("id" => "4", "name" => "name4"),
  array("id" => "5", "name" => "name5"),
  array("id" => "6", "name" => "name6"),
  array("id" => "7", "name" => "name7"),
  array("id" => "8", "name" => "name8"),
);

我想要做的是能够根据ID号选择一个名称。我使用了以下代码:

foreach ($array as $value)
{
  if($value['id'] = 5 ){
    echo  $value['name'] ."<p>";
  }
}

我期望结果为name5,但显示以下内容:

name1

name2

name3

name4

name5

name6

name7

name8

我想我对if语句做错了。我希望它只显示name5,因为那是ID号为“ 5”的唯一数组,但是由于某种原因,即使ID号不是5,它也会显示所有名称。

谢谢。

3 个答案:

答案 0 :(得分:1)

if($value['id'] = 5 ){

以上行将$value["id"]设置为5

您应该使用===进行比较

if($value['id'] === 5 ){

===将比较变量的类型和值,因此您应确保$array中的id字段为数字

答案 1 :(得分:0)

您缺少比较,而是添加了一个变量

foreach ($array as $value)
{
  if($value['id'] == 5 ){
    echo  $value['name'] ."<p>";
  }
}

答案 2 :(得分:0)

您的代码中缺少“ ==”。 “ ==”用于比较,而“ =”是将值分配给变量的分配。试试这个

foreach ($array as $value)
{
  if($value['id'] == 5 ){
    echo  $value['name'] ."<p>";
  }
}