如何从关联数组中的元素创建一个新数组,如果值为整数,则将该值放在新数组的第一位,第二位放置double,放在第三位字符串,然后打开最后一个元素的数量。我尝试这样的东西,但它不起作用。
<?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);
?>
答案 0 :(得分:0)
Mathieu Imbert是对的,你没有描述运行代码时出了什么问题。我根据myFunction
应该返回的内容(在您的问题中指定)进行了更正。
除非您希望它与值之后的空格一起使用,否则不应将这些值与字符串' '
连接起来。最后,如果你想要在返回数组中第3个位置上的元素数量,不要将计数器与' '
连接起来 - 使用该连接,计数器将是'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
)