我從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