如果我有这样的数组:
$cars = array (
array("name"=>"jeep","Year"=>"2012"),
array("name"=>"ferrari","Year"=>"2017"),
array("name"=>"jaguar","Year"=>"2013")
);
如何打印$cars['name']
$cars[Year] = 2013
,这是否可以在数组中实现,就像在MySQL中一样?正如我们对MySQL所知,我们可以这样做:
select * from table where //condition
那么,如何在数组中完成这项工作?
答案 0 :(得分:0)
你可以循环遍历数组中的每个元素,如果年份是2013,则使用'if'语句回显汽车的名称
control + d
答案 1 :(得分:0)
您可以使用array_filter()并将条件函数作为第二个参数与数组一起传递。以你的情况为例:
function filterArray($value){
if($value['Year'] == "2013")
return $value['name'];
}
$filteredArray = array_filter($fullArray, 'filterArray');
因此,如果我们传递的数组看起来像:
$fullArray = array (
array("name"=>"John","Year"=>"2012"),
array("name"=>"Doe","Year"=>"2017"),
array("name"=>"Martin","Year"=>"2013")
);
输出将是:
Array
(
[2] => Array
(
[name] => Martin
[Year] => 2013
)
)
答案 2 :(得分:0)
还有array_filter的解决方案,因为你可能会有多辆同年的汽车。
$cars = array (
array("name"=>"jeep","Year"=>"2012"),
array("name"=>"ferrari","Year"=>"2017"),
array("name"=>"jaguar","Year"=>"2013")
);
$filtered_cars = array_filter($cars, function ($item) {
return $item['Year'] === '2013';
});
print_r(current($filtered_cars)['name']);
答案 3 :(得分:0)
isFromYear函数接受年份作为参数的示例:
<?php
$cars = array (
array("name"=>"jeep","Year"=>"2012"),
array("name"=>"ferrari","Year"=>"2017"),
array("name"=>"jaguar","Year"=>"2013")
);
class YearFilter {
private $year;
function __construct($year) {
$this->year = $year;
}
function isFromYear($i) {
return $i["Year"] == $this->year;
}
}
$matches = array_filter($cars, array(new YearFilter("2013"), 'isFromYear'));
print_r($matches);
?>