簡體   English   中英

PHP foreach in_array 不斷返回 false

[英]Php foreach in_array keeps returning false

我構建了一個循環遍歷特定文件夾並獲取數組的 foreach:

foreach ($watchFolder as $key => $value) {
  echo '<pre>';
  print_r($value);
  echo '</pre>';
  if((in_array('xml', $watchFolder))) {
    echo "true";
  } else {
    echo "false";
  }

  foreach ($value as $key => $valueSub) {
    $currentWatchPath2 = $currentWatchPath . '\\' . $key;
    foreach ($valueSub as $content) {
      $currentWatchPath3 = $currentWatchPath2 . '\\' . $content;
    }
  }
}

如果我打印出$watchfolder我得到這個:

Array (
  [test] => Array([videos] => Array()
                  [xml] => Array())

  [test2] => Array([json] => Array([0] => test.json)
                   [videos] => Array())
)

如果我試試這個:

dd(in_array('xml', $value));

它返回null ,而它應該返回 true 還是?

我現在真的很困惑,所以我感謝每一個提示和建議。

xml$value數組的一個鍵,所以我認為你應該這樣檢查:

foreach ($watchFolder as $key => $value) {
        echo '<pre>';
        print_r($value);
        echo '</pre>';
        if(isset($value['xml'])) { // <--- here is the changed.
            echo "true";
        } else {
            echo "false";
        }

        foreach ($value as $key => $valueSub) {

            $currentWatchPath2 = $currentWatchPath . '\\' . $key;

            foreach ($valueSub as $content) {

                $currentWatchPath3 = $currentWatchPath2 . '\\' . $content;

            }

        }

    }

代替 in_array('xml', $watchFolder), 將使用 in_array('xml', $value)

foreach ($watchFolder as $key => $value) {
    echo '<pre>';
    print_r($value);
    echo '</pre>';
    if((in_array('xml', $value))) {
        echo "true";
    } else {
        echo "false";
    }

    foreach ($value as $key => $valueSub) {

        $currentWatchPath2 = $currentWatchPath . '\\' . $key;

        foreach ($valueSub as $content) {

            $currentWatchPath3 = $currentWatchPath2 . '\\' . $content;

        }

    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM