首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用字符串作为数组索引PHP

使用字符串作为数组索引PHP
EN

Stack Overflow用户
提问于 2013-02-16 06:43:42
回答 2查看 98关注 0票数 0

我真的被这个问题难住了。我有这个数组变量$banner_image_description。当我打印它时,我得到的是Array ( ['title'] => dafha ['price'] => adhfadhf )

现在,我要做的是检查“title”处的值的长度,并确保它大于2。所以当我运行时:

代码语言:javascript
复制
if (isset($this->request->post['banner_image'])) 
    {
        foreach ($this->request->post['banner_image'] as $banner_image_id => $banner_image) 
        {
            foreach ($banner_image['banner_image_description'] as $language_id => $banner_image_description) 
            {   
                print_r($banner_image_description);
                echo('<br/>');
                if ((utf8_strlen($banner_image_description['title']) < 2) || (utf8_strlen($banner_image_description['title']) > 64)) 
                { 

                    $this->error['banner_image'][$banner_image_id][$language_id] = $this->language->get('error_title'); 
                }                   
            }
        }   
    }

我得到了Notice: Undefined index: title,但我不知道为什么。我认为这是获取“title”的值的正确方法,我知道索引和值都在那里。

我非常确定该数组是由POSTing表单值填充的:

代码语言:javascript
复制
if (isset($this->request->post['banner_image'])) 
{
    $banner_images = $this->request->post['banner_image'];
}

下面是表单值的外观:

代码语言:javascript
复制
<input type="text" 
 name="banner_image[<?php echo $image_row; ?>][banner_image_description][<?php echo $language['language_id']; ?>]['title']" 
 value="<?php echo isset(
 $banner_image['banner_image_description'][$language['language_id']]['title']) ? 
 $banner_image['banner_image_description'][$language['language_id']]['title'] : ''; ?>" />
 <img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />
EN

回答 2

Stack Overflow用户

发布于 2013-02-16 06:50:59

这是一个警告,这是一个糟糕的编程,但还不会破坏任何东西。

这样做,它将确保密钥已设置并具有值。请记住,如果未设置此项以使键没有值,则您的echo语句将不会触发。

代码语言:javascript
复制
if (isset($banner_image_description['title']) && (utf8_strlen($banner_image_description['title']) < 2)) 
{ 
    echo 'too short!';
}
票数 1
EN

Stack Overflow用户

发布于 2013-02-16 07:46:31

var_dump()透露,关键字是including,所以if语句应该设置为

代码语言:javascript
复制
if ((utf8_strlen($banner_image_description["'title'"]) < 2) || (utf8_strlen($banner_image_description["'title'"]) > 64))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14904624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档