我使用array_filter做這樣的事情:array_filter與assoc數組?
function endswithy($value) {
return (substr($value, -1) == 'y');
}
$people = array("Johnny", "Timmy", "Bobby", "Sam", "Tammy", "Danny", "Joe");
$withy = array_filter($people, "endswithy");
var_dump($withy);
但在過濾器例如更多選項
$people = array(
"Johnny"=>array("year"=>1989, "job"=>"prof"),
"Timmy"=>array("year"=>1989, "job"=>"std"),
"Bobby"=>array("year"=>1988),
"Sam"=>array("year"=>1983),
"Tammy"=>array("year"=>1985),
"Danny"=>array("year"=>1983),
"Joe"=>array("year"=>1989,"job"=>"prof"));
OR
$people = array(
array("name"=>"Johnny","year"=>1989, "job"=>"prof"),
array("name"=>"Timmy","year"=>1989, "job"=>"std"),
array("name"=>"Bobby""year"=>1988),
array("name"=>"Sam","year"=>1983),
array("name"=>"Tammy","year"=>1985),
array("name"="Danny","year"=>1983),
array("name"="Joe","year"=>1989,"job"=>"prof"));
我怎樣才能得到只有這人(可以使用y
和year=1989
和job=prof
),我可以使用array_filter嗎? 或任何內置函數來做到這一點?
$people = array(
"Johnny"=>array("year"=>1989, "job"=>"prof")
);
OR
$people = array(
array("name="Johnny","year"=>1989, "job"=>"prof")
);
你可以使用name作爲* inner *數組的值而不是* outer *數組的鍵嗎?即,'$ people = array(array('name'=>'Johnny','year'=> 1989,'job'=>'prof'),...)' – binaryLV 2011-06-01 10:15:17
是的,我可以隨心所欲 – newbie 2011-06-01 10:17:46
如果你能做到,那麼使用'array_filter()'沒有問題。你會得到數組作爲回調函數的參數('endswithy()'),所以你可以檢查名字和年份。如果你只需要一次,你也可以使用'foreach'循環去除不需要的項目。我在下面的答案中給出了'array_filter()'和'foreach'的例子。 – binaryLV 2011-06-01 10:24:48