我从Web服务中提取大量数据,使我回到一个多维混合数组,其中只需要10%的信息。 我正在寻找一种灵活的方式来仅保留我的目的所需的信息。减少数组信息
我没有找到一个PHP函数或方法来做到这一点。
不要误会我的意思,我不想过滤值,也不想分片元素。
把它放到数据库的角度来看,我想“简单地”放下一些列。或者更好:我想保留我需要的列,并删除我不需要的所有其他列表,但我不知道。
E.G.
$big_array = array(
array("year" => 1979, "name" => "Miller", "wage" => "100", "children"=>array("John", "Kate")),
array("year" => 1983, "name" => "Smith", "wage" => "200"),
array("year" => 1980, "name" => "Mayer", "wage" => "200", "children"=>array("Tom")),
array("year" => 1981, "name" => "Mayer", "wage" => "100"),
array("year" => 1980, "name" => "Clinton", "wage" => "300", "children"=>array("Rosa", "Dick", "Christine")),
array("year" => 1981, "name" => "Bush", "wage" => "200"));
print_r($big_array);
会给我:
Array
(
[0] => Array
(
[year] => 1979
[name] => Miller
[wage] => 100
[children] => Array
(
[0] => John
[1] => Kate
)
)
[1] => Array
(
[year] => 1983
[name] => Smith
[wage] => 200
)
[2] => Array
(
[year] => 1980
[name] => Mayer
[wage] => 200
[children] => Array
(
[0] => Tom
)
)
[3] => Array
(
[year] => 1981
[name] => Mayer
[wage] => 100
)
[4] => Array
(
[year] => 1980
[name] => Clinton
[wage] => 300
[children] => Array
(
[0] => Rosa
[1] => Dick
[2] => Christine
)
)
[5] => Array
(
[year] => 1981
[name] => Bush
[wage] => 200
)
)
现在问题来了。我不知道我得到了什么额外的信息,因为我不是Web服务的主人。我只知道我需要的列。在这种情况下,我只需要“名称”和“孩子”。我不想因为没有孩子而失去数组元素。
所以返回的数组应该是这样的:
Array
(
[0] => Array
(
[name] => Miller
[children] => Array
(
[0] => John
[1] => Kate
)
)
[1] => Array
(
[name] => Smith
)
[2] => Array
(
[name] => Mayer
[children] => Array
(
[0] => Tom
)
)
[3] => Array
(
[name] => Mayer
)
[4] => Array
(
[name] => Clinton
[children] => Array
(
[0] => Rosa
[1] => Dick
[2] => Christine
)
)
[5] => Array
(
[name] => Bush
)
)
因此,功能应该是这个样子:
$small_array=function($big_array, array("name","children"));
包含键/列的一个阵列,以保持第二个参数。
有什么想法?
正确的,但用户需要的功能,所以你需要将转换带功能的代码。 – RJParikh