2017-02-27 110 views
0

如何从多维数组中禁用密钥并获取下一个出现密钥。从数组搜索中禁用密钥并获取下一个密钥

$array_example = array(

    'default_group' => 'styling', 

    'general' => esc_html__('General', THEMETEXTDOMAIN), 

    // User can enter it here 
    // 'default_group' => 'styling', 

    'styling' => esc_html__('Styling', THEMETEXTDOMAIN), 

    // 'default_group' => 'styling', 

    'animate' => esc_html__('Animate', THEMETEXTDOMAIN), 
) 

[default_group]键是一个固定键,但它可能在任何位置。

如果[default_group]键不存在或者它有一个空值,我需要获取下一个键。

if(array_key_exists('default_group', $array_example) && !empty($array_example['default_group'])) { 

    $col_group_default = sanitize_text_field($array_example['default_group']); 

} else { 

    // Here I want to get the key BUT NOT [default_group]         

} 
+0

如果不使用数组以后,为什么不直接取消设置'()'它它分配给'$ col_group_default'后? – Darren

+0

我需要在此之后的完整阵列 –

+0

在'else {...'你循环阵列以获得其他密钥? – Darren

回答

0
$choice = ''; 
$default = array_search('default_group', array_keys($array_example)); 

if ($default && !empty($array_example[ $default ])) { 
    $choice = $array_example[ $default ]; 
} else { 
    $choice = isset($array_example[ $default + 1]) ? $array_example[ $default + 1] : $array_example[0]; 
} 
+3

欢迎来到stackov ....哦,等等,你在这里足够长的时间知道“这里是codez”答案不是非常有帮助。请尝试解释如何以及为什么您发布的代码解决了OP问题。 –

+0

扩展的代码还包含'$ default'为空的最后一个元素,这会导致'$ default + 1'无效。 – RST

+0

@LJᛃ我认为你错了。我正在使用Op正在使用的确切逻辑,只是不同的功能。函数具有相当多的自定义名称。你所描述的将是正确的,如果我只是抛出一些代码在这个主题,http://stackoverflow.com/questions/42529018/combing-value-of-same-elements,我不知道。 – RST