我在php中有以下具有挑战性的关联数组。
array(
(int) 0 => array(
'table' => array(
'venue' => 'venue1',
'name' => 'name1'
)
),
(int) 1 => array(
'table' => array(
'venue' => 'venue1',
'name' => 'name2'
)
),
(int) 2 => array(
'table' => array(
'venue' => 'venue2',
'name' => 'name3'
)
),
(int) 3 => array(
'table' => array(
'venue' => 'venue3',
'name' => 'name4'
)
)
)
我想根据场地提取相关名单。我想实现一个函数ExtractNameArray($venue)
,这样当$venue=='venue1'
时,返回的数组看起来像array('name1', 'name2')
我一直在讨论这个问题。我从$ foreach开始,我被卡住了。怎么能在PHP中完成?非常感谢你。
答案 0 :(得分:1)
function ExtractNameArray($venue)
{
$array = array(); // your array
$return_array = array();
foreach($array as $arr)
{
foreach($arr['table'] as $table)
{
if($table['venue'] == $venue)
{
$return_array[]['name'] = $table['name'];
}
}
}
return $return_array;
}
您必须使用您的数组定义$ array。祝你好运
答案 1 :(得分:1)
首先,您必须将包含数据的数组传递给函数
第二,函数的名称应该以较低的字符(php约定)
开头试试这个
function extractNameArray($array, $venue) {
$results = array();
foreach($array as $key=>$value) {
if(isset($value['table']['venue'])&&$value['table']['venue']==$venue) {
isset($value['table']['name']) && $results[] = $value['table']['name'];
}
}
return $results;
}