外陣列我有一些功能,與在陣列格式提供的數據處理。這些功能都做同樣的工作,所以我想將它們合併成一個單一的功能。卸下在PHP
的問題是,它們中的每接收具有不同深度的數組:一維,二維和使用三維陣列,並且在未來的一些實施方式中,甚至可以使用四維陣列。
在任何情況下,顯著和必要的數據總是在兩個最靠裏的陣列,所以我需要擺脫外部陣列,直到我只有最裏面的兩個級別。 我懷疑是不是簡單的如何做到這一點,但如何做到這一點優雅和有效地,因爲我覺得我目前的方法相當笨拙。
當前方法:
function add() {
$data = func_get_args();
if(count($data)>0) {
if(is_array($data[0])) {
if(is_array($data[0][0])) {
foreach($data[0] as $row) {
$this->items[] = $row;
}
} else {
$this->items[] = $data[0];
}
} else {
$this->items[] = $data;
}
}
}
一些使用實例:
$list->add('one', 'two', 'three', 'four', 'five');
$list->add($data_from_DB_in_array_format);
$list->add(
array(
array('one', 'two', 'three', 'four', 'five'),
array('six', 'seven', 'eight', 'nine', 'ten')
)
);
$list->add(
array(
array(
array('one', 'two', 'three', 'four', 'five'),
array('six', 'seven', 'eight', 'nine', 'ten')
)
)
);
由於數據經由func_get_args回收(),一切都被置於一個額外的陣列內。
的結果必須是這樣的:
array(
array('one', 'two', 'three', 'four', 'five'),
array('six', 'seven', 'eight', 'nine', 'ten')
);
你目前的方法是什麼? –
請提供各種數據結構的 –
的func_get_args的一些例子()被需要的,因爲在一個實例中的數據被傳遞不作爲數組但是與元件的變化的量列表。 –