例如,我有多维数组,如下所示:
$array = array (
0 =>
array (
'id' => '9',
'gallery_id' => '2',
'picture' => '56475832.jpg'
),
1 =>
array (
'id' => '8',
'gallery_id' => '2',
'picture' => '20083622.jpg'
),
2 =>
array (
'id' => '7',
'gallery_id' => '2',
'picture' => '89001465.jpg'
),
3 =>
array (
'id' => '6',
'gallery_id' => '2',
'picture' => '47360232.jpg'
),
4 =>
array (
'id' => '5',
'gallery_id' => '2',
'picture' => '4876713.jpg'
),
5 =>
array (
'id' => '4',
'gallery_id' => '2',
'picture' => '5447392.jpg'
),
6 =>
array (
'id' => '3',
'gallery_id' => '2',
'picture' => '95117187.jpg'
)
);
如何获取array(0,1,2,3,4,5,6)
的密钥?
我尝试了很多例子,但没有任何事情对我有用。
答案 0 :(得分:14)
这很简单,你只需要使用array_keys()
:
$keys = array_keys($array);
编辑对于您的搜索任务,此功能应该完成这项工作:
function array_search_inner ($array, $attr, $val, $strict = FALSE) {
// Error is input array is not an array
if (!is_array($array)) return FALSE;
// Loop the array
foreach ($array as $key => $inner) {
// Error if inner item is not an array (you may want to remove this line)
if (!is_array($inner)) return FALSE;
// Skip entries where search key is not present
if (!isset($inner[$attr])) continue;
if ($strict) {
// Strict typing
if ($inner[$attr] === $val) return $key;
} else {
// Loose typing
if ($inner[$attr] == $val) return $key;
}
}
// We didn't find it
return NULL;
}
// Example usage
$key = array_search_inner($array, 'id', 9);
第四个参数$strict
,如果TRUE
,将使用严格类型比较。因此,9
将不起作用,您必须传递'9'
,因为值存储为字符串。返回匹配的第一个出现的键,如果未找到值则返回NULL
,或者出现错误时出现FALSE
。确保对返回值使用严格的比较,因为0
,NULL
和FALSE
都是可能的返回值,如果使用松散整数,它们都将计算为0
比较。
答案 1 :(得分:2)
可能是http://php.net/manual/en/function.array-keys.php?
自己转换双维数组:
$tmp = null
foreach($array as $key => $value) {
$tmp[] = $key;
}
print_r($tmp);
答案 2 :(得分:2)
试试这个,我认为它会对你有帮助。
foreach ($array as $key=>$value)
{
echo $key.'<br/>';
echo $value['id'].'<br/>';
echo $value['gallery_id'].'<br/>';
echo $value['picture'].'<br/><br/>';
}
答案 3 :(得分:1)
答案 4 :(得分:0)
你的意思是这样的:
function getKeys($array)
{
$resultArr = array();
foreach($array as $subArr) {
$resultArr = array_merge($resultArr, $subArr);
}
return array_keys($resultArr);
}