2014-10-07 76 views
0

我正在讀取文件的內容並將其分解到數組中 反轉數組後,請幫助查找第一次END並將所有數據存儲到變量中。另外,請幫助獲取第二次END。查找特定數組中的字符串

function get(){ 

    $path="C:/xampp/htdocs/test/recentOrders.txt"; 
    if(!file_exists($path)){ 
     echo "Error"; 
    }else { 
     $summary= file_get_contents($path); 

     $summaryarr = explode("\n", $summary); 

     $summaryarrR=array_reverse($summaryarr); 
     foreach($summaryarrR as $a){ 
     echo $a."<br>"; 
    } 
    if (in_array('END', $summaryarrR)) { 
     echo "Got mac"; 
    } else { echo "not found"; } 

    $key=array_search('END', $summaryarrR); 
    var_dump($key); 
} 

文件內容如下:

END 07/10/2014 10:30:15 
52970 10024 
52970 10024 
52970 10024 
END 07/10/2014 10:50:36 
52970 10025 
52970 10025 
+0

無論如何你想要提取什麼?日期? – Ghost 2014-10-07 08:14:53

回答

0

我縮短了我的代碼複製了一下,只包括重要的部分在這裏得到你,你的結果。 這將遍歷你的數組,然後通過substr()來檢查數組對象的前三個字母是否爲「END」。如果匹配,它會將當前的數組鍵添加到名爲$ ends的新名爲。這將最終包含所有包含和END元素的數組鍵。要獲得第一個發生,只需使用$ ends [0]:

$summary= file_get_contents($path); 

$summaryarr = explode("\n", $summary); 

$i=0; 
$ends = array(); 
while($i < count($summaryarr)){ 
    echo $summaryarr[$i] . "<br>"; 
    if(substr($a, 0, 3) == "END"){ 
     $ends[] = $i; 
    } 
    $i++; 
} 

print_r("ends occur on array keys: " . $ends); 
-1

從W3C

var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
var a = fruits.indexOf("Apple"); 
+0

你的答案是javascript,而OP代碼是在PHP – 2014-10-07 08:14:04

+0

使用in_array()函數[點擊這裏](http://php.net/manual/en/function.in-array.php) – Amy 2014-10-07 08:15:59

+0

在數組中不會工作,因爲數組元素本身不包含「END」。它包含「END <未知變量>」。 in_array()檢查完全匹配。 – 2014-10-07 08:21:22

相關問題