PHP 数组键存在于字符串中

标签 php arrays string

我有一个数组:

<?php
    $array = [
        'fruits' => [
            'apple' => 'value',
            'orange' => 'value'
        ],
        'vegetables' => [
            'onion' => 'value',
            'carrot' => 'value'
    ];

我还有一个字符串:

$string = 'fruits[orange]';

有什么方法可以检查字符串中指定的 - 数组键 - 是否存在于数组中?

例如:

<?php
if(array_key_exists($string, $array)) 
{
    echo 'Orange exists';
}

最佳答案

试试这个。这里我们使用了 foreachisset 函数。

Note: This solution will also work for more deeper levels Ex: fruits[orange][x][y]

Try this code snippet here

<?php

ini_set('display_errors', 1);
$array = [
    'fruits' => [
        'apple' => 'value',
        'orange' => 'value'
    ],
    'vegetables' => [
        'onion' => 'value',
        'carrot' => 'value'
    ]
];
$string = 'fruits[orange]';
$keys=preg_split("/\[|\]/", $string, -1, PREG_SPLIT_NO_EMPTY);
echo nestedIsset($array,$keys);
function nestedIsset($array,$keys)
{
    foreach($keys as $key)
    {
        if(array_key_exists($key,$array))://checking for a key
            $array=$array[$key];
        else:
            return false;//returning false if any of the key is not set
        endif;
    }
    return true;//returning true as all are set.
}

关于PHP 数组键存在于字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46444379/

相关文章:

c++ - 对称迭代数组

java - 将字符串 Java 中的阿拉伯逗号替换为英文

php - 在 PHP 中记录的上传缩略图

php - 使用 PHP filter_input_array 过滤多维 POST

java - 可变大小的二维数组

arrays - 从 dojo/store 获取列的不同值数组

java - 在另一个字符串中查找具有模式 ALXXXXX 的字符串的正则表达式是什么?

ios - 在 Swift 中设置 UITextField 的最大字符长度

php - 在 php 中计算具有相同值的 mysql 条目?

php - 如何在 tcpdf 的每一页上放置表格的列标题?