2013-04-29 56 views

回答

3
foreach ($array as $key => $val) 
    if (is_numeric($key)) // only numbers, a point and an `e` like in 1.1e10 
     unset($array[$key]); 

這將取消所有隻有數字的條目。

+0

這裏有什麼問題......? – bwoebi 2013-04-29 19:29:30

+0

這基本上是Cooper糾正了錯字的答案。給他一些時間來修復它,而不是重複答案 - 這是他的想法。 – 2013-04-29 19:32:26

+0

他不是在尋找數字鍵,而不是數值? – andrewsi 2013-04-29 19:33:05

3

使用此代碼

foreach($array as $key=>$value) 
    if(is_numeric($value)) 
     unset($array($key)); 
+0

有一個錯字:正確的是'is_numeric'。 – bwoebi 2013-04-29 19:30:01

+0

ops! thanx,我編輯它 – Cooper 2013-04-29 19:31:28

7

濾波陣列將是最優雅的方式:

$array = array_filter($array, 'is_numeric'); 

這將返回只有那些對他們來說is_numeric()是真值的數組。

+0

是的,它看起來比下面的答案更優雅,但我正在尋找只有數字的字符串。 – DanCapitanDePlai 2013-04-29 19:39:06

+1

如果您只需要數字,而沒有可能出現在數字字符串中的任何其他符號,則可以使用'is_int'進行過濾。 – pilsetnieks 2013-04-29 19:40:44