2016-01-20 59 views
0

我想計算此數組中具有字符串中最後一個字符之前的字符t的所有值(城市的名稱)。在具有特殊字符的數組中計數值

ARRAY

$cities_array = array(
"city1" => "Paris_t1", 
"city2" => "Madrid_t1", 
"city3" => "Amsterdam_t1", 
"city4" => "London_i1", 
"city5" => "Miami_i1", 
"city6" => "Berlin_i1", 
"city7" => "Brussels_i1", 
"city8" => "Toronto_i1", 
); 

結果應該是:(Paris_t1 - Madrid_t1 - Amsterdam_t1)

我相信我有結合:

array_count_values($cities_array) 

substr($value, -2, 1) == "t" 

我都試過了,但我得到的唯一錯誤。

+1

什麼阻止你嘗試? –

+0

笑,做一些編碼,不預測的事情:),我們會幫你,如果你遇到任何問題,當你實施解決方案 –

+0

我什麼都試過,但我得到每次錯誤。 –

回答

2

該W倒數第二個字符搜索生病給你你想要的東西。

 $cities_array = array(
       "city1" => "Paris_t1", 
       "city2" => "Madrid_t1", 
       "city3" => "Amsterdam_t1", 
       "city4" => "London_i1", 
       "city5" => "Miami_i1", 
       "city6" => "Berlin_i1", 
       "city7" => "Brussels_i1", 
       "city8" => "Toronto_i1", 
       ); 
$count = 0; 
$city_text = ''; 
foreach($cities_array as $city){ 
    if(substr($city, -2, 1) == "t"){ 
     $count++; 
     $city_text .= $city . '-'; 
    } 
} 

echo $count. "(".rtrim($city_text,'-').")"; 
+0

非常感謝你。我今天學了些新東西): –

0

嘗試以下溶液:

$cities_array = array(
    "city1" => "Paris_t1", 
    "city2" => "Madrid_t1", 
    "city3" => "Amsterdam_t1", 
    "city4" => "London_i1", 
    "city5" => "Miami_i1", 
    "city6" => "Berlin_i1", 
    "city7" => "Brussels_i1", 
    "city8" => "Toronto_i1", 
); 

$filtered_array = array_filter($cities_array, function($val){ 
    return (strpos($val, 't', (strlen($val)-2)) !== false); 
}); 

print_r($filtered_array); 

輸出: - (可以由爆陣列 - 以獲得所需結果)在strpos第三參數

Array 
(
    [city1] => Paris_t1 
    [city2] => Madrid_t1 
    [city3] => Amsterdam_t1 
) 

在上述溶液strlen($val)-2)即位置將從的$val