【问题标题】:php print specific value of nested arrayphp打印嵌套数组的特定值
【发布时间】:2014-05-19 19:26:19
【问题描述】:

我正在尝试根据 WordPress 中当前用户的电子邮件地址在数组中打印一个值。该数组已使用

设置
$link= json_decode($xml, TRUE);

我有一些基本逻辑可以检查当前 WordPRess 用户的电子邮件并将其打印出来。

if (in_array("current_user->user_email", $link)) {
    echo "Got user's email address:" .'<br />';
    echo $current_user->user_email;
    echo "<br />";
    echo $Members->MemberID;
} else {
    echo "No such email address exists";
} 

我还需要从数组中打印出当前用户的成员 ID 值。这是该数组的示例输出。这甚至可能吗?我正在尝试这样做,而不必在数据库中存储任何数据。

 Array
 (
 [Members] => Array
    (
        [0] => Array
            (
                [EmailAddress] =>randomemail@gmail.com
                [FirstName] => Merle
                [LastName] => Delisio
                [MemberExtension] => 000
                [MemberID] => c1c17b39-bdba-4c76-9fd6-e53a982aa713
                [MemberNumber] => 2031
                [MiddleInitial] => 

            )

        [1] => Array
            (
                [EmailAddress] => someemail@gmail.com
                [FirstName] => Allen
                [LastName] => Barnaby
                [MemberExtension] => 000
                [MemberID] => 2e16fded-e55b-4687-9696-eb329b96d1e7
                [MemberNumber] => 2001
                [MiddleInitial] => 

【问题讨论】:

  • 在 google 中搜索“php 数组遍历”以查找有关此主题的有用信息。

标签: php arrays wordpress


【解决方案1】:

多维数组搜索可能就是您要找的?

http://www.highonphp.com/multidimensional-array-search

我不确定这是否能满足您的需求,但希望能帮助您指明正确的方向。

if (in_array("current_user->user_email", $link)) {
    echo "Got user's email address:" .'<br />';
    echo $current_user->user_email;
    echo "<br />";
    $tmp = array_multi_search($Members, $current_user->user_email);
    echo $Members[$tmp[0]]['MemberID'];
} else {
    echo "No such email address exists";
} 

在您的示例中, $Members 是一个数组数组。如果你要使用类似 array_multi_search 的例子,如果$current_user-&gt;user_email = 'someemail@gmail.com' 我希望得到$tmp = array(0 =&gt; 0)。对于您给定的 $Members 示例,我们实际上只期望返回一个值。我希望其余的都是不言自明的,如果没有,请让我知道。

【讨论】:

  • 我要为第二个参数@input“MemberID”设置什么?在如何调用该函数以使我返回 MemberID 的值时也遇到了麻烦。您链接中的示例使用 print_r 返回数组。
  • 希望对一些人有所帮助。
  • 绝对不疼。我认为更多的是我无法理解递归的概念。您的代码似乎跟上了 $tmp = array_multi_search($Members, $current_user->user_email);我收到“调用未定义函数 Array_Multi_Search”。这可能与作为 WordPress 函数 wp_get_current_user() 一部分的 $current_user 变量有关吗?
  • 是的,您需要从您的代码可访问的链接中复制/粘贴该函数。
  • 哦,既然您提到这是与 WordPress 相关的,可能已经有更好的方法来获取此信息。
猜你喜欢
  • 2018-07-04
  • 2020-08-25
  • 2019-05-28
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
  • 2017-09-18
  • 2015-09-28
  • 2018-07-09
相关资源
最近更新 更多