基于条件的多维数组上的PHP数组_filter()
我拥有以下用户阵列:基于条件的多维数组上的PHP数组_filter(),php,arrays,Php,Arrays,我拥有以下用户阵列: $users = [ [name => 'Alice', age => 22], [name => 'Bob', age => 23], [name => 'Charlie', age => 19] ]; 我想创建一组至少20岁的用户。我试过: $allowed_users = array_filter($users, function($user) { return $user->age >= 20; })
$users = [
[name => 'Alice', age => 22],
[name => 'Bob', age => 23],
[name => 'Charlie', age => 19]
];
我想创建一组至少20岁的用户。我试过:
$allowed_users = array_filter($users, function($user) {
return $user->age >= 20;
});
var_dump($allowed_users);
返回一个空数组。我认为回调函数有问题。您可以使用以下代码:
function onStart(){
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
$allowed_users = array_filter($users, function($user) {
return $user['age'] >= 20;
});
var_dump($allowed_users);
}
您可以使用以下代码:
function onStart(){
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
$allowed_users = array_filter($users, function($user) {
return $user['age'] >= 20;
});
var_dump($allowed_users);
}
您正在对数组使用对象表示法。这是一个简单的解决方案:
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
$allowed_users = array_filter($users, function($user) {
return $user['age'] >= 20;
});
var_dump($allowed_users);
尽管这本身不是一个错误,但请在键中使用引号,否则解释器将抛出一个通知。您将对象表示法用于数组。这是一个简单的解决方案:
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
$allowed_users = array_filter($users, function($user) {
return $user['age'] >= 20;
});
var_dump($allowed_users);
尽管这本身不是一个错误,但在键中使用引号,否则解释器将抛出一个通知。您需要使用数组语法访问数组成员,您使用的是对象语法
<?php
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
$allowed_users = array_filter($users, function($user) {
return ($user['age'] >= 20);
});
var_dump($allowed_users);
您需要使用数组语法访问数组成员,因为您使用的是对象语法
<?php
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
$allowed_users = array_filter($users, function($user) {
return ($user['age'] >= 20);
});
var_dump($allowed_users);
首先,每个子用户数组的键不是用双引号或单引号括起来的
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
并且必须使用括号中的键访问每个子数组键$users[1]['name']
返回第一个子数组中第一个用户的名称
$allowed_users = array_filter($users, function($user) {
return $user['age'] >= 20;
});
首先,每个子用户数组的密钥不是用双引号或单引号括起来的
$users = [
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 23],
['name' => 'Charlie', 'age' => 19]
];
并且必须使用括号中的键访问每个子数组键$users[1]['name']
返回第一个子数组中第一个用户的名称
$allowed_users = array_filter($users, function($user) {
return $user['age'] >= 20;
});