0
我想要做的是有一個函數接受兩個參數,兩個數組,第一個是不同長度的一維數組,第二個是一個不同深度和長度的多維數組。第一個數組永遠不會關聯,第二個數組總是一個完全關聯的數組。如何獲得多維數組與另一個一維數組
該函數將返回多維數組中所請求的值,如第一個數組所示。
假設第一個數組總是被手寫並傳遞給這個函數。這意味着開發人員總是知道從多維數組中返回值,並且永遠不會將請求傳遞給值不存在的函數。
我認爲下面的代碼是我試圖實現的最好的例子。
//Example multi-dimensional array
$multi = array(
'fruit' => array(
'red' => array(
'strawberries' => '$2.99/lb',
'apples' => '$1.99/lb'
),
'green' => array(
'honeydew' => '$3.39/lb',
'limes' => '$0.75/lb'
)
),
'vegetables' => array(
'yellow' => array(
'squash' => '$1.29/lb',
'bellpepper' => '$0.99/lb'
),
'purple' => array(
'eggplant' => '$2.39/lb'
)
),
'weeklypromo' => '15% off',
'subscribers' => array(
'[email protected]' => 'User 1',
'[email protected]' => 'User 2',
'[email protected]' => 'User 3',
'[email protected]' => 'User 4'
)
);
//Example one-dimensional array
$single = array('fruit', 'red', 'apples');
function magicfunc($single, $multi) {
//some magic here that looks something like below
$magic_value = $multi[$single[0]][$single[1]][$single[2]];
return $magic_value;
}
//Examples:
print magicfunc(array('fruit', 'red', 'apples'), $multi);
Output:
$1.99/lb
print magicfunc(array('subscribers', '[email protected]'), $multi);
Output:
User 3
print magicfunc(array('weeklypromo'), $multi);
Output:
15% off