获取多维数组的关键?

Jur*_*ins 15 php arrays

例如,我有多维数组如下:

$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'
    )
);
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到钥匙array(0,1,2,3,4,5,6)

我尝试了很多例子,但没有任何方法可以帮助我.

Dav*_*dom 17

这很简单,你只需要使用array_keys():

$keys = array_keys($array);
Run Code Online (Sandbox Code Playgroud)

看它工作

编辑对于您的搜索任务,此功能应该完成工作:

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);
Run Code Online (Sandbox Code Playgroud)

第四个参数$strictif TRUE将使用严格类型比较.所以9不起作用,你必须通过'9',因为值存储为字符串.返回匹配的第一个出现的键,NULL如果未找到该值,则返回FALSE错误.确保对返回值使用严格的比较,因为0,NULL并且FALSE都是可能的返回值,0如果使用松散的整数比较,它们都将评估为.


srb*_*rot 7

试试这个,我想它会帮助你。

foreach ($array as $key=>$value)
{
    echo $key.'<br/>';

    echo $value['id'].'<br/>';
    echo $value['gallery_id'].'<br/>';
    echo $value['picture'].'<br/><br/>';
}
Run Code Online (Sandbox Code Playgroud)