如何将阵列转换为更小的阵列?在php中
我有这样的数组这将解决您的问题。可以使用array_map()函数迭代每个值如何将阵列转换为更小的阵列?在php中,php,arrays,Php,Arrays,我有这样的数组这将解决您的问题。可以使用array_map()函数迭代每个值 $result = array_map( function( $value ) { return [ 'first_name'=>$value['first_name'], 'last_name'=> $value['last_name'] ]; }, $array ); print_r($result); 输出: Array ( [0] => Array
$result = array_map( function( $value ) {
return [ 'first_name'=>$value['first_name'], 'last_name'=> $value['last_name'] ];
}, $array );
print_r($result);
输出:
Array
(
[0] => Array
(
[first_name] => hassan
[last_name] => hassani
)
[1] => Array
(
[first_name] => mohamad
[last_name] => mohamadi
)
)
有很多方法可以做到这一点,但这是我想到的第一件事。重新做数组。我将在下面提供的方法将为您提供一个示例,说明如何在不覆盖当前数组的情况下执行此操作,以备以后需要时使用。这种方法也很灵活
<?php
$array = Array(); //you won't need this, let's just assume we're using the array from your original post
$newArray = Array(); //create a new array, this will have less values than the original
foreach ($array as $k=>$v){
if ($k == "first_name" or $k == "last_name"){ //only add to array if the key is "first_name" or "last_name"
$newArray[$k] = $v; //adds it to $newArray
}
}
print_r($newArray);
?>
您自己已经尝试过什么?我理解,当你(相对)不熟悉php和/或编程时,这些东西可能会很难理解——我假设你是,否则这个问题真的应该删除
这里有一些关于数组的介绍,以及如何在数组上循环。过来看!W3C通常有一些好的和可理解的信息
我将通过在数组上循环并删除所有您不想保留的条目来实现这一点,也就是说,不在您想保留的密钥数组中。或者,您可以通过指定需要删除的键来完成此操作。例如:
<?php
$array = [
[
"id" => "2",
"first_name" => "hassan",
"last_name" => "hassani",
"created": "0000-00-00 00:00:01",
],
[
"id": "3",
"first_name" => "mohamad",
"last_name" => "mohamadi",
"created" => "0000-00-00 00:00:00",
]
]
$keepers = ["first_name", "last_name"]; // Make an array of keys we want to keep.
foreach ($array as $arr) { // Loop over the outer array
foreach ($arr as $key => $value){ // Loop over the inner array that actually holds the key=> value pairs.
if (!in_array($key, $keepers)){ // Determine whether we want to keep this key.
unset($arr[$key]) // This key is not in the $keepers-array, we'll go ahead and delete (i.e. unset) it.
}
}
}
您可以使用和使用键id
和created
从数组中删除项:
$result = array_map(function($x) {
unset($x['id'], $x['created']);
return $x;
}, $arrays);
这将导致:
Array
(
[0] => Array
(
[first_name] => hassan
[last_name] => hassani
)
[1] => Array
(
[first_name] => mohamad
[last_name] => mohamadi
)
)
到目前为止你做了什么?尝试了什么吗?更好的地方是你用sql查询删除一些列。她有一个多维数组,像这样循环会得到$k
的整数。您需要在数组$v
上循环以实际操作键=>值对。。。还是我弄错了?@Nielles我不确定。如果他从PHP脚本中打印出这个数组,我相当肯定它也会输出数字索引(当然,这不在数组的值内)。