我有一个数组数组
$person = array(2) {
[billy]=>
array(3) {
["height"]=>
string(60) "tall"
["build"]=>
string(7) "slim"
["attractiveness"]=>
string(7) "extremely"
}
[carl]=>
array(3) {
["height"]=>
string(60) "short"
["build"]=>
string(7) "chubby"
["attractiveness"]=>
string(7) "neglegible"
}
不幸的是,对于卡尔来说,对他没有任何兴趣。相反,比利非常需要,人们希望看到比利的细节。
所以我想遍历数组并只返回Billy的信息。
function findHotty($billy){
foreach ( $person as $meat)
{
// wizardry
return onlyBilly
}
}
我希望在功能中传递子阵列的名称,所以如果明天卡尔风靡一时 - 他有一定的无可否认的魅力 - 当我称之为方法时我可以通过它卡尔并且它寻找他的子阵列。 我希望这很清楚!
答案 0 :(得分:4)
不需要任何循环,尽管您应该实现某种错误检查以确保人员数组中存在该名称。
function findHotty($name) {
if (!isset($person[$name])) {
// do something when the name doesn't exist
}
return $person[$name];
}
答案 1 :(得分:3)
您可以尝试以下方法: -
function findHotty($billy){
foreach ( $person as $key => $meat)
{
if($key=='Billy')
{
$meat['..'];
}
// wizardry
return onlyBilly
}
}
答案 2 :(得分:1)
以下是两种获取比利的方法。如果没有比利,这两个函数都会返回Billy的数据或者返回false。如果你的阵列中有两个Billy,那么你只会得到第一个。
<?php
$persons = array(
'billy' => array(
'height' => 'tall',
'build' => 'slim',
'attractiveness' => 'extremely'
},
'carl' => array(
'height' => 'short',
'build' => 'chubby',
'attractiveness' => 'neglegible'
)
);
function findHotty($billy){
foreach ($persons as $name => $details)
if($name == $billy){
return $details;
}
}
return false;
};
function findHotty2($billy){
return isset($persons[$billy]) ? $persons[$billy] : false;
};