【问题标题】:Array values to strings数组值到字符串
【发布时间】:2015-03-03 12:53:20
【问题描述】:

我正在尝试将数组值转换为字符串,但我失败了

我的数组 ($epg) 如下所示:

Array
(
)
Array
(
    [0] => Array
        (
            [title] => VGhlIEZhbnRhc3kgRm9vdGJhbGwgQ2x1Yg==
            [lang] => en
            [start] => 1425385800
            [end] => 1425387600
            [description] => Sm9obiBGZW5kbGV5IGFuZCBQYXVsIE1lcnNvbiBwcmVzZW50IGEgZGlzY3Vzc2lvbiBvbiBrZXkgZmFudGFzeSBmb290YmFsbCBpc3N1ZXMsIGFzIHdlbGwgYXMgdGhlIHdlZWtlbmQncyBQcmVtaWVyIExlYWd1ZSBtYXRjaGVzLiBBbHNvIGZlYXR1cmluZyBndWVzdHMgZnJvbSB0aGUgd29ybGRzIG9mIHNwb3J0IGFuZCBzaG93Yml6Lg==
        )

    [1] => Array
        (
            [title] => QmFyY2xheXMgUHJlbWllciBMZWFndWUgUmV2aWV3
            [lang] => en
            [start] => 1425387600
            [end] => 1425391200
            [description] => QSBsb29rIGJhY2sgYXQgcmVjZW50IGZpeHR1cmVzIGluIHRoZSBFbmdsaXNoIFByZW1pZXIgTGVhZ3VlLCBhcyB0aGUgc2Vhc29uIGNvbnRpbnVlZCB3aXRoIG1hdGNoZXMgYWZmZWN0aW5nIGJvdGggZW5kcyBvZiB0aGUgdGFibGUu
        )

)
Array
(
)

然后我创建 foreach 循环,并尝试获取如下值:

$title = $epg['title'];
$lang = $epg['lang'];
echo $lang;
echo $title;

但我得到错误:

注意:未定义索引:标题在........注意:未定义索引: 语言中…………

我猜会发生这种情况,因为我有奇怪的数组,这些空数组在开始和结束时。

如果是这样,我该如何解决?

问候 M

【问题讨论】:

  • 哥们,你真的需要了解基础知识
  • 也许分享一些我如何将值转换为字符串的信息?

标签: php arrays


【解决方案1】:

当你像这里一样定义数组时

[0] => Array
    (
        [title] => VGhlIEZhbnRhc3kgRm9vdGJhbGwgQ2x1Yg==
        [lang] => en
        [start] => 1425385800
        [end] => 1425387600
        [description] => Sm9obiBGZW5k...
    )

如果您没有将标题、语言等作为变量定义为您需要的变量

[0] => Array
    (
        ['title'] => VGhlIEZhbnRhc3kgRm9vdGJhbGwgQ2x1Yg==
        ['lang'] => en
        ['start'] => 1425385800
        ['end'] => 1425387600
        ['description'] => Sm9obiBGZW5k...
    )

【讨论】:

  • 如果您从其他网站获得它,您需要知道它是如何在那里工作的,对此我无能为力,但上面的想法是写 ['title'] - 加上引号这个数组中的一个键是“title”,并给它右边的值=>。但是,写成 [title] 表示添加一个键,该键是变量 title 的值。如果您在上面声明了变量标题,您可以这样做 - title = "myVariable"; - 这样你这次在数组中的键是“myVariable”。因此,当您使用引号时,您给它一个字符串作为键,而没有引号的键就是变量的值。
【解决方案2】:

使用这个删除你的空然后使用这个

print_r(array_filter($epg));

echo $title = $epg['title']

【讨论】:

    【解决方案3】:

    检查你的数组是否为空

    if (count($epg) != 0)
    

    【讨论】:

      【解决方案4】:

      您会收到通知,而不是错误。但最好将它们视为错误并从您的代码中删除。

      这些注意事项是关于未定义的索引,因此您必须检查给定的索引是否存在于数组的当前元素中。你可以这样做:

      $title = array_key_exists('title',$epg) ? $epg['title'] : NULL;
      

      Manual

      【讨论】:

        猜你喜欢
        • 2013-12-14
        • 2017-04-15
        • 2016-02-09
        • 2019-05-13
        • 2013-04-15
        • 1970-01-01
        • 1970-01-01
        • 2014-10-24
        • 2015-04-16
        相关资源
        最近更新 更多