2012-08-03 115 views
-5

我想從長數組值中獲取字符串。如何從數組中獲得值

例如

$array[1]='this is a good day. The number:1, class:math'; 
$array[2]='this is a bad day. The number:2, class:english'; 
$array[3]='this is a fine day. The number:3, class:physics'; 

我想要得到的number:1class:math字符串從數組中。

我試圖

echo array_search('number:1',$array); 

,但它給了我什麼。我想知道是否有更好的方法來做到這一點。非常感謝!

+2

你讀過[documentation](http://us3.php.net/manual/en/function.array-search.php)了嗎? – 2012-08-03 18:11:58

+1

'array_search'搜索數組元素,而不是數組元素中的字符串內容。你是否試圖找到包含*某個鍵/值對*的*元素*,或者你是否試圖找到*某個元素中某個鍵的值*? – 2012-08-03 18:12:27

+1

那麼,你到底在做什麼呢?你想要什麼回來? – 2012-08-03 18:14:39

回答

3

我想你正在尋找像下面這樣的東西。在數組的值內搜索一個針。

<?php 
function array_search_inline($needle, $haystack) { 
    foreach ($haystack as $key => $value) { 
     if (strpos($value, $needle) !== false) { 
      return $key; 
     } 
    } 
    return false; 
} 
?> 

注:array_search簡單地比較數組的價值觀和他們的內部不搜索。

+2

我認爲你的意思是'strpos($ value,$ needle)'? – tigrang 2012-08-03 18:17:10

+0

不應該讓'array_search_inline($ needle,$ haystack)'一致嗎? – 2012-08-03 18:18:00

+0

謝謝。我只是在使用strpos($ haystack,$ needle)的函數頭之前...... – 2012-08-03 18:21:03