簡體   English   中英

在PHP中查找數組中元素的索引

[英]Find index of an element in an array in PHP

我試圖在一個數組中找到一個字符串,然后返回索引並檢查另一個數組中的索引以查看它是否匹配(我分別在數組中尋找打開時間和匹配關閉時間)。

該字符串可能在$openList出現$openList ,並且不應該停止檢查,直到在$openList$closeList中都找到一對匹配的時間$closeList array_search只找到第一個匹配項,因此在創建一個有效且有效的循環時遇到了麻煩(我將使用不同的搜索值多次運行此循環)。

到目前為止,我有這樣的事情:

$openList = array("10:00", "9:00", "10:15", "9:00", "2:30");
$closeList = array("2:15", "5:30", "10:30", "10:00", "3:00");

$found_key = false;
while (($key = array_search("9:00", $openList)) !== NULL) {
  if ($closeList[$key] == "10:00") {
    $found_key = true;
    echo "found it at position ".$key;
    break;
  }
}
if (!$found_key) echo "time doesn't exist";

如何有效地解決問題?

可以肯定,array_keys正是您要尋找的東西:

http://www.php.net/manual/zh/function.array-keys.php

如果列表中沒有"9:00" ,則當前循環將永遠運行。 而是使用foreach循環瀏覽$openList數組:

foreach ( $openList as $startTimeKey => $startTimeValue )
{
    //Found our start time
    if ( $startTimeKey === "9:00" && isset( $closeList[ $startTimeValue ] ) && $closeList[ $startTimeValue ] === "10:00" )
    {
        $found_key = true;
        break;
    }
}

感謝您提供有關array_keys @David Nguyen的提示。 這似乎可行:

$openList = array("10:00", "9:00", "10:15", "9:00", "2:30");
$closeList = array("2:15", "5:30", "10:30", "10:00", "3:00");

$found_key = false;
foreach (array_keys($openList, "9:00") AS $key) {
  if ($closeList[$key] == "10:00") {
    $found_key = true;
    echo "found it at position ".$key;
    break;
  }
}
if (!$found_key) echo "time doesn't exist";

暫無
暫無

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

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