php - 如何检查子数组中的值?
问题描述
我正在尝试检查“$query_string_params_and_values_white_list”数组中是否存在以下 2 个 var 值。
//Values to check:
$table = 'users';
$column = 'kites';
//Array:
$query_string_params_and_values_white_list = array('table'=>array('users','members'),array('column'=>array('keyword','phrase')));
在我的测试中,我得到了回应......
'不存在' '不存在'
由于数组中确实存在第一个 var 值,因此我的结果回显应该是:
'存在' '不存在'
但由于我得到了不想要的结果,这意味着我的代码有问题。
这是我的代码...
$query_string_params_and_values_white_list = array('table'=>array('users','members'),array('column'=>array('keyword','phrase')));
$table = 'users';
$column = 'kites';
if(in_array("$table",$query_string_params_and_values_white_list))
{
echo 'exists';
}
else
{
echo 'no exists';
}
if(in_array("$column",$query_string_params_and_values_white_list))
{
echo 'exists';
}
else
{
echo 'no exists';
}
我哪里做错了 ?我正在检查数组而不是子数组。正确的 ?如果是这样,那么如何检查子数组?
你能告诉我我应该如何编码吗?
谢谢!
解决方案
您可以使用几种不同的方法来列出子数组,但首先 - 数组定义:
$query_string_params_and_values_white_list = array(
'table'=>array('users','members'),
array(
'column'=>array('keyword','phrase')
)
);
如果它是正确的并且你真的想要那种数组,那么使用类似的东西:
$table = 'users';
$column = 'kites';
foreach ($query_string_params_and_values_white_list as $subarray){
if(in_array($table,$subarray))
{
echo "exists\n";
}
else
{
echo "no exists\n";
}
}
foreach ($query_string_params_and_values_white_list as $subarray){ //listing 1st level
foreach ($subarray as $subsubarray){ //listing 2nd level
if(in_array($column,$subsubarray))
{
echo "exists\n";
}
else
{
echo "no exists\n";
}
}
}
foreach
检查数组的每个元素,通过使用它两次,您可以获得第三维($query...
arrary -> unnamed
array -> 'column'
array)的元素。PHP对此给出了一些警告,所以我假设您的意思是:
$query_string_params_and_values_white_list = array(
'table'=>array('users','members'),
'column'=>array('keyword','phrase')
);
然后搜索变得更容易一些:
$table = 'users';
$column = 'kites';
foreach ($query_string_params_and_values_white_list as $subarray){
if(in_array($table,$subarray))
{
echo "exists\n";
}
else
{
echo "no exists\n";
}
}
foreach ($query_string_params_and_values_white_list as $subarray){
if(in_array($column,$subarray))
{
echo "exists\n";
}
else
{
echo "no exists\n";
}
}
PS 不怕分解数组结构 - PHP 允许这样做,它让您对您尝试做的事情更有信心。
推荐阅读
- python - 如何从烧瓶 wtform 获得时间间隔?
- python - 如何使用python在JSON输出上显示所有字符串匹配
- google-bigquery - Bigquery API 无法识别通配符表
- python - 使用 POST 方法使用 Django 获取 h7 标签的文本
- python-3.x - PyInstaller 不访问我在编译时捆绑的文件
- python - 为什么这只是打印我的数组而不是进行数学运算并打印出完成的数学运算?
- python - 如何使用 Tkinter 在单个图像上创建可点击位置
- shell - 如何启用“!!” 在鱼?
- java - 如何在之间一一提取文本
和跨度标签
- java - 如何以与 setLength 属性 java 类似的方式在 python 中为字符串设置固定长度