php in array key,PHP: array_key_exists - Manual

/// it works like array_key_exists that can go deeper

function in_array_deeply($keys, $multi)

{

$depths = array();

$fun = null;

// inner, recursive function

function in_fun($level, $arr_keys, $subject, &$depths) {

// only if array

if (is_array($subject)) {

// if key exists

if (array_key_exists($arr_keys[$level], $subject)) {

// record depth and go deeper

$depths[] = $arr_keys[$level];

in_fun($level+1, $arr_keys, $subject[$arr_keys[$level]], $depths);

}

}

};

//

in_fun(0, $keys, $multi, $depths);

$srchd = implode('.',$keys);

$found = implode('.',$depths);

//

return ($srchd==$found);

}

/// example usage

$mapa = array('quadrada','comprida','amarela');

$cidade = array(

'redonda' => array(

'curta' => 'o seu filme'

),

'quadrada' => array(

'longa' => array(

'azul' => array('logo',2,'mais',2,'são',4),

'amarela' => array('então',3,'vezes',2,'são',6),

'verde' => array('senão',100,'dividido por',2,'é',50)

),

'extravagante' => array(

'vermelha' => 'chama atenção',

'vinho' => 'cor de uva',

'ocre' => 1255

),

'comprida' => array(

'amarela' => 'brasilia dos mamonas',

'branca' => 'bandeira da paz',

'preta e branca' => 'peças do xadrez'

)

),

'oval' => array(

'conde' => 'lobo'

),

'plana' => array(

'curta' => array(

'azul' => array('e',2,'mais',2,'são',4),

'amarela' => array('sim',3,'vezes',2,'são',6),

'verde' => array('verdade',100,'dividido por',2,'é',50)

)

)

);

$encontrou = in_array_deeply($mapa, $cidade);

echo $encontrou;

/// if the tree you search for exists, it will print out 'true'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值