0

私は本当にこれに困惑しています。私はこの配列変数を持っています$banner_image_description。印刷するとArray ( ['title'] => dafha ['price'] => adhfadhf ).

今、私がやろうとしているのは、「タイトル」の値の長さをチェックし、それが 2 より大きいことを確認することです。実行すると:

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ましたが、理由がわかりません。これが「タイトル」で値を取得する正しい方法だと思いました。インデックスがあり、値がそこにあることはわかっています。

フォームの値を POST することによって配列が取り込まれていることは確かです。

if (isset($this->request->post['banner_image'])) 
{
    $banner_images = $this->request->post['banner_image'];
}

フォームの値は次のようになります。

<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 />
4

2 に答える 2

0

var_dump()キーに ' が含まれていることが明らかになったので、if ステートメントを次のように設定する必要があります

if ((utf8_strlen($banner_image_description["'title'"]) < 2) || (utf8_strlen($banner_image_description["'title'"]) > 64))
于 2013-02-15T23:46:31.033 に答える