亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一些關于 array_search 的 php 編碼,結果出乎意料

一些關于 array_search 的 php 編碼,結果出乎意料

PHP
慕標琳琳 2021-12-24 14:59:25
我想從數組中找到一個鍵值,如果不存在則將一個數組集插入到一個數組列表中如果我搜索藍色,它會返回 Y 但是如果我搜索綠色,它會返回 N$people = array(  0 => array('name' => 'John','fav_color' => 'green' ),1=> array(  'name' => 'Samuel',  'fav_color' => 'blue'));$found_key = array_search('green', array_column($people, 'fav_color'));if($found_key){    print_r("Y");}else{    print_r("N");}期望搜索藍色或綠色返回 Y
查看完整描述

2 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

根據array_search文檔中的注釋:


警告:此函數可能返回布爾值 FALSE,但也可能返回計算結果為 FALSE 的非布爾值。請閱讀有關布爾值的部分以 獲取更多信息。使用=== 運算符來測試此函數的返回值。


在您的情況下,green值的索引為 0。在 if 語句中,0 表示 false。為了解決這個問題,你需要對 array_search 返回的值進行嚴格的類型檢查,如下所示。


if ($found_key !== false) { // strict type check

    print_r("Y");

} else {

    print_r("N");

}


查看完整回答
反對 回復 2021-12-24
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您也可以使用in_array()功能。


$people = array(

        0 => array(

      'name' => 'John',

      'fav_color' => 'green'

       ),

      1=> array(

        'name' => 'Samuel',

        'fav_color' => 'blue'

      )

      );


      $found_key = in_array('green', array_column($people, 'fav_color'));

      if($found_key){

          print_r("Y");

      }else{

          print_r("N");

      }


查看完整回答
反對 回復 2021-12-24
  • 2 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號