2012-12-04 52 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 
)