【发布时间】:2014-11-11 10:55:57
【问题描述】:
我遇到了一个小问题。好吧,我通过声明变量 $all_meta_for_user = get_user_meta($user_id, 'meta_key', false) 从 wordpress 数据库中获取一些 user_meta 数据,这些数据存储为数组。然后,我想检查是否存在某些特定数据,如果存在,则执行某些操作,否则执行其他操作。我在 stackoverflow 的某个地方有一个提示,我可以通过这种方式实现它:
foreach($all_meta_for_user as $key=>$val) :
if (array_key_exists ('some_key', $val) && array_key_exists ('some_other', $val)) { do something } else {do something else }
endforeach;
只要数据库中存在关联的“meta_key”(这很明显:)),效果就很好。但是,如果不是呢?然后,很明显,foreach 是错误的并且它不会运行。
基本上,即使数组为空,我也想在else 之后显示内容。我怎样才能改变我的代码,以实现这一目标?我想我可以让它工作,如果我首先检查 if 数组是否为空,如果没有 - 用 foreach 做代码,如果是 - 做我的其他。但问题是,在我的 else 中有很多代码,所以我想避免重复它。
所以,简单来说,问题是,如何以一种不错的方式制作它,这不会使我的代码翻倍 :) 谢谢!
PS 我真的找不到合适的主题名称。如果有人知道如何命名它,请发表评论,以便我更改它!谢谢!
【问题讨论】:
-
你不能把你的
else的内容放在一个函数中,然后在你的 else 或者你的 foreach 之前调用这个函数,如果数组是空的? -
正如我在下面的答案中所说 - 不,由于我缺乏对过于复杂的 php 代码的理解,我不能。 :(
标签: php arrays wordpress foreach