【问题标题】:Convert array key to string in php [duplicate]在php中将数组键转换为字符串[重复]
【发布时间】:2021-02-07 17:33:02
【问题描述】:

使用 print_r 打印名为 yestardayArray 的数组时,我有以下输出:

Array
(
    [project-id] => Array
        (
            [373482] => Array
                (
                    [responsible-ids] => Array
                        (
                            [129938] => Array
                                (
                                    [0] => Array
                                        (
                                            [task-id] => 1812
                                            [content] => HU-003 - FRONT
                                            [progress] => 100
                                            [completed_On] => 2020-10-23
                                            [created_On] => 2020-10-14
                                            [responsible-ids] => 129938
                                            [responsible-name] => Malo M.
                                        )

                                )

                        )

                )

        )

)

我需要一种方法从责任 ID 数组中获取“129938”值作为字符串。 我正在迭代项目 ID ($pid),在本例中为“373482”,并使用不同的键。让我们调用一个变量needString:

$needString = $yesterdayArray["project-id"][$pid]["responsible-ids"][$key];

当我打印需要字符串时,我得到的是“Array”而不是“129938”。

如何以字符串形式获取该数组键?

【问题讨论】:

  • responsible-ids数组可以有多个元素吗?
  • 是的,事实上他们会这样做,至少大多数时候是这样
  • 但是$key 不是已经是那个键了吗?只需回显key - 或通过在末尾添加一个空白字符串将其转换为字符串$needString = $key. ""
  • @jameson 教你在字符串声明中不必要地添加. ""?我在 SO 上经常看到这种奇怪的技术。
  • 我不确定@mickmackusa 这不是我自己真正做的事情,因为我很少有一个用例来明确地将一个 int 设为字符串(如果我在字符串中连接一个 int 值,它会小心本身)。如果 OP 明确需要它作为字符串,这只是一种快速的方法。你会推荐什么

标签: php arrays string


【解决方案1】:

如果您想遍历每个 responsible-ids 子数组的键,您可以简单地使用嵌套的 foreach 例如

foreach ($yesterdayArray['project-id'] as $pid => $array) {
    foreach ($array['responsible-ids'] as $key => $rid) {
        echo $key . PHP_EOL;
    }
}

如果您只想获取每个responsible-ids 子数组的键列表,则可以使用array_keys

foreach ($yesterdayArray['project-id'] as $pid => $array) {
    print_r(array_keys($array['responsible-ids']));
}

输出(用于您的样本数据):

129938

Array
(
    [0] => 129938
)

Demo on 3v4l.org

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2017-05-22
    • 2019-03-18
    • 2023-04-03
    • 2021-05-28
    相关资源
    最近更新 更多