鉴于DummyClass
上的这个静态方法,请告诉我如何让返回的数据给我订单位置 主数组中的数组。
public static function editableColumns()
{
return array(
array('attribute' => 'name',
'heading' => 'Name',
'type' => 'singleline',
'width' => '50%'
),
array('attribute' => 'displayName',
'heading' => 'Display Name',
'type' => 'singleline',
'width' => '50%'
),
);
}
例如,如果我想要attribute == 'name'
,返回0 (因为name属性位于第一个数组中。如果我想要attribute == 'displayName'
,它应该返回1 < / em>的
希望这是有道理的。
答案 0 :(得分:1)
使用foreach
循环:
public static function getKey($array, $searchKey, $searchValue, $multipleKeys = false){
$keys = [];
foreach($array as $key => $value){
if(!isset($value[$searchKey]) || $value[$searchKey] != $searchValue)
continue;
if(!$multipleKeys)
return $key;
$keys[] = $key;
}
if(!$multipleKeys)
return false;
return empty($keys) ? false : $keys;
}
您可以这样调用此方法:
$key = Class::getKey(Class::editableColumns(), 'attribute', 'name'); //0
$keys = Class::getKey(Class::editableColumns(), 'type', 'singleline', true); //[0, 1]
答案 1 :(得分:1)
function editableColumns()
{
return array(
array('attribute' => 'name',
'heading' => 'Name',
'type' => 'singleline',
'width' => '50%'
),
array('attribute' => 'displayName',
'heading' => 'Display Name',
'type' => 'singleline',
'width' => '50%'
),
);
}
$key = 'attribute';
$needle = 'displayName';
$result = key(
array_filter(
editableColumns(),
function($entry) use($key, $needle) {
return $entry[$key] == $needle;
}
)
);
var_dump($result);
请注意,如果键/值对存在于多个条目中,则只有第一个将在$ result中返回