我有一个具有以下结构的数组:
$array = array(
array("animal" => "dog","color" => "black"),
array("animal" => "cat","color" => "white"),
array("animal" => "mouse","color" => "grey")
);
现在我需要对动物的每个值执行一个函数,比如将值设为大写。这是预期的输出:
array(3) {
[0]=>
array(2) {
["animal"]=>
string(3) "DOG"
["color"]=>
string(5) "black"
}
[1]=>
array(2) {
["animal"]=>
string(3) "CAT"
["color"]=>
string(5) "white"
}
[2]=>
array(2) {
["animal"]=>
string(5) "MOUSE"
["color"]=>
string(4) "grey"
}
}
当我这样做时
for (int i=0; i<=$array.size(); i++) {
$array["animal"] = array_map('strtoupper', $array["animal"]);
}
我收到此错误:
<b>Parse error</b>: syntax error, unexpected 'i' (T_STRING), expecting ';' in <b>[...][...]</b> on line <b>15</b><br />
答案 0 :(得分:3)
您可以通过以下方式实现此目的:
<?php
$array = array(
array("animal"=>"dog","color"=>"black"),
array("animal"=>"cat","color"=>"white"),
array("animal"=>"mouse","color"=>"grey")
);
foreach ($array as $key => $value) {
foreach ($value as $key1 => $value1) {
if($key1 == 'animal'){
$keys = ucfirst($value1);
$array[$key][$key1]=$keys;
}
}
}
echo "<pre>";print_r($array);
?>
答案 1 :(得分:0)
您也可以使用PHP的array_walk函数
$array = array(
array("animal"=>"dog","color"=>"black"),
array("animal"=>"cat","color"=>"white"),
array("animal"=>"mouse","color"=>"grey")
);
$array_map = array_walk($array, 'walk_array');
function walk_array(&$item, $key){
$item['animal'] = strtoupper($item['animal']);
}
echo '<pre>';
print_r($array);
答案 2 :(得分:0)
您可以使用for()
循环来迭代您的动物。您必须使用count()
函数转换为变量来计算您首先获得的动物数量。然后,您可以使用animal
函数在strtoupper()
索引上设置大写字母。另请注意,您可以将新的PHP语法用于像[]
这样的数组,这是一种更快捷的方法。
<?php
$animals = [
[
'animal' => 'dog',
'color' => 'black'
],
[
'animal' => 'cat',
'color' => 'white'
],
[
'animal' => 'mouse',
'color' => 'grey'
]
];
for ($i = 0; $i < count($animals); $i++)
{
$animals[$i]['animal'] = strtoupper($animals[$i]['animal']);
}
echo '<pre>';
print_r($animals);
echo '</pre>';
Array
(
[0] => Array
(
[animal] => DOG
[color] => black
)
[1] => Array
(
[animal] => CAT
[color] => white
)
[2] => Array
(
[animal] => MOUSE
[color] => grey
)
)