

※このコードではエラーになりますので使えません。

確実ではないですが、下記のように定義して使うphpの配列ってないんでしたっけ？  
多次元配列でもなく、連想配列でもない気がします。

【定義方法】

[code]

            $data[] = array(
                'code1' => mb_convert_encoding($tmp_code1,"UTF-8","SJIS"),
                'code2' => mb_convert_encoding($tmp_code2,"UTF-8","SJIS"),
                'code3' => mb_convert_encoding($tmp_code3,"UTF-8","SJIS")
            );
    
[/code]

【var_dump結果】

[code]

    array(3) 
    {
        [0]=> array(4) { ["code1"]=> string(4) "1234" ["code2"]=> string(4) "1234" ["code3"]=> string(4) "1234" } 
    
        [1]=> array(4) { ["code1"]=> string(4) "1234" ["code2"]=> string(4) "1234" ["code3"]=> string(4) "1234" } 
    
        [2]=> array(4) { ["code1"]=> string(4) "1234" ["code2"]=> string(4) "1234" ["code3"]=> string(4) "1234" } 
    }
    
[/code]

**【出力】←ここが問題**

[code]

    echo $data[0]->code1; //こんなんで呼び出しできたはずだけど、エラーです・・・。
    
[/code]

こんな感じでした・・・。  
正しい定義の仕方と、呼び出し方と、配列の名前を教えていただきたいです。  
後、格納はされているようですが出力が出来ていない気がします。


CC BY-SA 3.0
2017-07-18T08:46:02.977
36469
2019-09-17T16:01:55.593
2017-07-18T09:08:49.493
2376
24471
question
php array
phpの配列の種類で $ver[数値]->コード名 のように使うものってなんでしたっけ？


コメントしたように、あなたのご質問にはいろいろ不明の部分も多いのですが、とりあえず「←ここが問題」「エラーです」のエラーを解消することを主眼にした内容だけでも先にお答えしておきます。

* * *

PHPには配列は「連想配列」しかありません。中身の要素をアロー演算子(`->`)でアクセスできるのは、 **オブジェクト** と呼ばれ、
**配列とは全く別物** になります。

[PHP: オブジェクト - Manual](http://php.net/manual/ja/language.types.object.php)

オブジェクトのインスタンスを作成するには上記リンク先の記事にあるように、自前で`class`を定義して`new`演算子を使用する他に、同ページの下部「オブジェクトへの変換」にあるように、配列からキャストを用いて作成することもできます。

コード:

[code]

    <?php
    $tmp_code1 = 'abc';
    $tmp_code2 = 'def';
    $tmp_code3 = 'ghi';
    
    $data[] = (object)array(
                'code1' => mb_convert_encoding($tmp_code1,"UTF-8","SJIS"),
                'code2' => mb_convert_encoding($tmp_code2,"UTF-8","SJIS"),
                'code3' => mb_convert_encoding($tmp_code3,"UTF-8","SJIS")
            );
    echo $data[0]->code1;
    echo "\n";
    var_dump($data);
    
[/code]

出力:

>
[code]

>     abc
>     array(1) {
>       [0]=>
>       object(stdClass)#1 (3) {
>         ["code1"]=>
>         string(3) "abc"
>         ["code2"]=>
>         string(3) "def"
>         ["code3"]=>
>         string(3) "ghi"
>       }
>     }
>  
[/code]

オブジェクト内の各プロパティには、ご自身で記載されているようにアロー演算子でアクセスできるので、ご質問中の「呼び出し方」が何を言おうとしているのか、「格納はされているようですが出力が出来ていない気がします」と言うのがどのような動作を期待されているものかがわかりません。

PHP言語の公式ページは上記リンクのように日本語情報も充実していますので、まずはリンク先をじっくり読んで、リンク先ページ内にあるような正しい用語を用いた上で、具体的内容をご質問に追記していただいた方が良いかと思います。


CC BY-SA 3.0
2017-07-18T09:23:19.797
36470
2017-07-18T09:23:19.797
13972
36469
answer