如何检查数字中是否存在4个' id'关键位置

时间:2017-05-17 11:51:55

标签: php arrays

如何在id键位置

中检查数组中是否存在4
$arr = array(
    array(
        'id' => 1,
        'other_data' => 'ganesh'
       ),
    array(
        'id' => 2,
        'other_data' => 'ramesh'
       ),
    array(
        'id' => 3,
        'other_data' => '4'
       ),
)

6 个答案:

答案 0 :(得分:2)

您提供的数组不是有效的多维数组。您需要在数组中的每个数组后添加逗号。我在下面使用array_columnin_array而不使用foreach

<?php
    $arr = array(
        array(
            'id' => 1,
            'other_data' => 'ganesh'
           ),//add comma
        array(
            'id' => 2,
            'other_data' => 'ramesh'
           ),
        array(
            'id' => 3,
            'other_data' => '4'
           ),
    );


    $filtered = array_column($arr, 'id');//return the id column in this array

    if(in_array(4, $filtered)){//check if 4 exists
        echo '4 exists';
    } else {
     echo '4 does not exist';   
    }
    ?>

答案 1 :(得分:1)

很简单,循环遍历数组并检查值是否存在:

$value = 4;
$exists = false;
foreach($arr as $innerArr){
  if($innerArr['id'] == $value){
    $exists = true;
    break;
  }
}

如果现在$exists为真,则该值存在于数组中。

答案 2 :(得分:1)

试试这个,如果你遇到任何问题,请告诉我。

<?php
$arr = array(
        array(
            'id' => 1,
            'other_data' => 'ganesh'
           ),
        array(
            'id' => 2,
            'other_data' => 'ramesh'
           ),
        array(
            'id' => 3,
            'other_data' => '4'
           )
    );

foreach ($arr as $key => $value) {
    if (in_array("4", $value))
      {
        $sub_index = $value['id'];
        echo "Match found at $sub_index";
        break;
      }
}

只需循环遍历数组并通过in_array()函数检查是否存在。

答案 3 :(得分:1)

你需要这样的东西

$arr = array(
        array(
            'id' => 1,
            'other_data' => 'ganesh'
           ),
        array(
            'id' => 2,
            'other_data' => 'ramesh'
           ),
        array(
            'id' => 3,
            'other_data' => '4'
           )
    );
    $exists_flag = false;
    foreach($arr as $inside_arr)
    {
      if($inside_arr['other_data'] == 4) {
        $exists_flag = true;
        break;
      }
    }

    print($exists_flag);

希望这有帮助!

答案 4 :(得分:1)

就目前而言,您的数组是错误的,您需要用逗号分隔多个数组,您不需要in_array()不能使用多数组,但是您可以创建一个递归函数来检查提供的密钥确实存在与否在下面的数组尝试代码中,希望它有助于,

<?php

$arr = array(
    array(
        'id' => 1,
        'other_data' => 'ganesh'
    ),
    array(
        'id' => 2,
        'other_data' => 'ramesh'
    ),
    array(
        'id' => 3,
        'other_data' => '4'
    )
);

function search_items($search_value, $array)
{
    foreach ($array as $item) {
        if (($item == $search_value) || (is_array($item) && search_items($search_value, $item))) {
            return true;
        }
    }

    return false;
}

echo search_items("4", $arr) ? 'item found' : 'item not found';

?>

答案 5 :(得分:1)

$result = array_search(4, array_column($arr, 'id'));

如果我们将其分为几个步骤,那么它将是以下内容:

$allColumnsNamedId = array_column($arr, 'id'); // find all columns with key 'id'
$resultBoolean = array_search(4, $allColumnsNamedId); //search the array for value 4

if($resultBoolean) {
    echo 'Exists';   
} else {
   echo 'Does not exist';
}