2013-04-14 89 views
2

我想知道是否有辦法將兩個數組鍵轉換爲一個數組鍵?如何連接兩個數組鍵?

作爲一個例子的陣列看起來像:

[0] => '12345' 
[1] => 'New' 
[2] => 'York' 

我怎麼能結合[1] => 'New'[2] => 'York'[1] => 'New York'

我發現的所有是array_merge,它結合了兩個陣列。即使如何conconternate兩個數組鍵我找不到任何東西。

非常感謝。

+3

沒有在功能上沒有內置此。只需將它們連接起來,然後相應地修改您的數組。 –

+0

「即使如何conconternate兩個數組鍵我找不到任何東西」,所以這應該如何工作?你能給我一個提示嗎? – bonny

+0

$ array [1]。=''。$ array [2]; – Twisted1919

回答

2

你可以試試:

$data = array(12345,"New","York"); 
echo concat($data, array(1,2)); //New York 

//或

$data = array(12345,"New","York"); 
print_r(concatArray($data, array(1,2))); 

輸出

Array 
(
    [0] => 12345 
    [1] => New York 
) 

功能用於

function concat($array, $keys , $glue = " ") { 
    $values = array_intersect_key($array, array_flip($keys)); 
    return implode($glue, $values); 
} 


function concatArray($array, $keys, $glue = " ") { 
    $last = null; 
    foreach ($array as $key => &$value) { 
     if (in_array($key, $keys)) { 
      if ($last === null) { 
       $last = $key; 
       continue; 
      } 
      $array[$last] .= $glue . $value; 
      unset($array[$key]); 
     } 
    } 
    return $array; 
} 
1

這裏有一個提示;)

$new = $array[1] . ' ' . $array[2]; 
$array[1] = $new; 
unset($array[2]); 
+0

不要忘記檢查存在的壽。如果鍵不存在,這至少會拋出四個警告;) – 2013-04-14 21:51:19

+0

這就是爲什麼這是一個提示;) –

+0

現在我明白了。這安靜簡單但行人。謝謝。 – bonny