2012-12-04 53 views
0

來創建關聯數組元素的一個數值數組如何從在關聯數組元素的方式,如果值是整數再穿上首位該值在一個新的數組,在創建一個新的數組第二名放置雙,第三名字符串,並在元素的最後位置數。我嘗試這樣的東西,但它不起作用。如何通過類型

<?php 
$array = array ('first' => 2.54, 'second' => "foo", 'third' => 1); 
function myFunction($array) 
{ $NewArray = array(); 
    $[3] = 0; 
foreach($array as $value) 
{ 
    if(is_integer($value)) 
    {echo $NewArray[0] = $value.' ';} 
    if(is_double($value)) 
    {echo $NewArray[1] = $value.' ';} 
    if(is_string($value)) 
    {echo $NewArray[2] = $value.' ';} 
    echo $NewArray[3] += 1 . ' ';} 
    return $NewArray;} 
MyFunction ($array); 
?> 
+1

什麼預期的產出?描述這是如何工作的。這是你測試的實際代碼,因爲'$ [3] = 0;'是沒有意義的。 – Tchoupi

回答

0

Mathieu Imbert是對的,你沒有描述當你運行代碼時出了什麼問題。我糾正它基於什麼myFunction應該返回(在你的問題中指定)。

,除非您使用值後面的空格想要它,你不應該用繩子串連' '這些值。最後,如果你想在返回數組的第三位元素的個數,不連接具有' '計數器 - 與級聯計數器將'1 1 1 '(從你的問題樣品陣列)。沒有它 - 3

這裏的修正,測試代碼(我把重新格式化你的代碼的自由,以使其更易於讀取並添加print_r()爲漂亮輸出):

<?php 
    $array = array('first' => 2.54, 'second' => "foo", 'third' => 1); 
    function myFunction($array) { 
     $newArray = array(); 
     $newArray[3] = 0; 
     foreach($array as $value) { 
      if (is_integer($value)) { 
       $newArray[0] = $value; 
      } 
      if (is_double($value)) { 
       $newArray[1] = $value; 
      } 
      if (is_string($value)) { 
       $newArray[2] = $value; 
      } 
      $newArray[3] += 1; 
     } 
     return $newArray; 
    } 
    print_r(myFunction($array)); 
?> 

,輸出:

Array 
(
    [3] => 3 
    [1] => 2.54 
    [2] => foo 
    [0] => 1 
)