我拥有以下用户:
$allowed_users = array_filter($users, function($user) {
return $user->age >= 20;
});
var_dump($allowed_users);
我想创建一个至少有20年历史的用户。我尝试过:
function SetCreateDate(STR_filename, posixdate)
% SetCreateDate(STR_filename, posixdate)
% STR_filename = 'C:\Data\my_testfile.dat'
% posixdate = posixtime(datetime('15-Sep-2018 16:00:01','InputFormat','dd-MMM-uuuu HH:mm:ss','TimeZone','America/New_York'))
filePath = strrep(STR_filename,'\','\\');
p = java.nio.file.Paths.get(filePath,javaArray('java.lang.String', 0));
filedate=posixdate*1000; % filedate is in milli-seconds
java.nio.file.Files.setAttribute(p, "creationTime", java.nio.file.attribute.FileTime.fromMillis(filedate), javaArray('java.nio.file.LinkOption', 0));
%%%% Additional Filetime Attributes that can be set
%java.nio.file.Files.setAttribute(p, "lastAccessTime", java.nio.file.attribute.FileTime.fromMillis(filedate), javaArray('java.nio.file.LinkOption', 0));
%java.nio.file.Files.setAttribute(p, "lastModifiedTime", java.nio.file.attribute.FileTime.fromMillis(filedate), javaArray('java.nio.file.LinkOption', 0));
哪个返回一个空数组。我想我在回调函数上做错了。
答案 0 :(得分:1)
您正在将对象表示法与数组一起使用。这是一个简单的解决方法:
$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);
尽管这本身不是错误,但请在键中使用引号,否则解释器会发出通知。
答案 1 :(得分:1)
您需要使用数组语法访问数组成员,正在使用对象语法。
<?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);
答案 2 :(得分:1)
首先,每个子用户数组的键都不用双引号或单引号引起来
$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;
});
答案 3 :(得分:0)
您可以使用以下代码:
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);
}