【问题标题】:Php array entry value and return key [closed]PHP数组条目值和返回键[关闭]
【发布时间】:2014-01-09 08:40:22
【问题描述】:

嗨,我有一个 $_SESSION["product"] 数组,$_SESSION["product"] print_r 输出是:

Array
(
    [0] => Array
        (
            [id] => 152
            [name] => 0
            [total] => 3
        )

    [1] => Array
        (
            [id] => 343
            [name] => 0
            [total] => 5
        )

    [2] => Array
        (
            [id] => 799
            [name] => 0
            [total] => 7
        )

)

例如,当我搜索 id 并找到主键时,我想输出;当我写 799 时,输出为 2 或

$_SESSION["product"][2]

【问题讨论】:

  • 那么你尝试了什么?

标签: php arrays session key


【解决方案1】:

尚未测试,但应该可以:

$search = 799; // id to search
foreach($_SESSION["product"] as $key => $array) // Look through session array
{
    if($array["id"] == $search) // Found your id
    {
        $output = $key; // Set id to variable
        break; // Exit loop
    }
}
echo $output; // Your output

【讨论】:

    【解决方案2】:

    只需循环并检查 id。例如:

    $search = 799;
    
    foreach( $products as $key => $product ) {
        if( $product[ 'id' ] == $search ) {
           $item = $product;
           break;
        }
    }
    
    print_r( $product );
    

    顺便说一句,这是未经测试的。这将打印出与 id 匹配的项目。如果您只想要密钥,请改用它。

    $item = $key;
    

    【讨论】:

      【解决方案3】:

      一个简单的 foreach 循环就可以做到这一点。当你点击你期望的id时,返回数组记录的键。

      $search_for = 799;
      
      foreach($_SESSION["product"] as $key => $data) {
          if($data['id'] == $search_for) {
              $result = $key;
              break;
          }
      }
      
      if($result) {
          echo 'Result is: ' . $result;
      } else {
          echo 'No match';
      }
      

      【讨论】:

        【解决方案4】:

        试试这个

        function getIndex($name, $array){
            foreach($array as $key => $value){
                if(is_array($value) && $value['id'] == $name)
                    return $key;
            }
            return null;
        }
        $array = Array(
            array(
                'id' => 152,
                'name' => 0,
                'total' => 3
            ),
        
            array(
                'id' => 152,
                'name' => 0,
                'total' => 3
            ),
        
            array(
                'id' => 799,
                'name' => 0,
                'total' => 7
            ),
        );
        print_r('<pre>');
        print_r($array);
        echo getIndex(799, $array);
        

        【讨论】:

          【解决方案5】:

          只需使用 array_search()

          $i=0;
          foreach($arr as $val_arr)
          {
              $key = array_search(799,$val_arr);
              if(!empty($key))
              {
                  echo $i; //"prints" 2
              }
              $i++;
          
          }
          

          【讨论】:

            猜你喜欢
            • 2013-01-05
            • 2011-01-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-23
            • 1970-01-01
            • 1970-01-01
            • 2023-03-25
            相关资源
            最近更新 更多