PHPでよくあるこういうデータ
$data = [
0 => [
"name" => "client" ,
"type" => "string" ,
"arguments" => [] ,
"options" => [
"nullable" => false
]
] ,
1 => [
"name" => "company" ,
"type" => "string" ,
"arguments" => [] ,
"options" => [] ,
] ,
2 => [
"name" => "addr1" ,
"type" => "string" ,
"arguments" => [
0 => "12"
] ,
"options" => [
"nullable" => true
] ,
] ,
3 => [
"name" => "addr2" ,
"type" => "text" ,
"arguments" => [] ,
"options" => [
"nullable" => true
] ,
]
];
こういうデータから検索を行い、マッチするデータをすべて取得します。
$data_selected = array_filter($data, function($hash){
return ( @$hash['name'] === "addr1" );
});
print_r($data_selected);
Array
(
[2] => Array
(
[name] => addr1
[type] => string
[arguments] => Array
(
[0] => 12
)
[options] => Array
(
[nullable] => 1
)
)
)
$data_selected = array_filter($data, function($hash){
return ( preg_match("/^addr.+/",@$hash['name']) );
});
print_r($data_selected);
Array
(
[2] => Array
(
[name] => addr1
[type] => string
[arguments] => Array
(
[0] => 12
)
[options] => Array
(
[nullable] => 1
)
)
[3] => Array
(
[name] => addr2
[type] => text
[arguments] => Array
(
)
[options] => Array
(
[nullable] => 1
)
)
)
/*
"options" => [
"nullable" => true
] ,
のデータを取得
*/
$data_selected = array_filter($data, function($hash){
return ( @$hash['options']['nullable'] === true );
});
print_r($data_selected);
Array
(
[2] => Array
(
[name] => addr1
[type] => string
[arguments] => Array
(
[0] => 12
)
[options] => Array
(
[nullable] => 1
)
)
[3] => Array
(
[name] => addr2
[type] => text
[arguments] => Array
(
)
[options] => Array
(
[nullable] => 1
)
)
)