[PHP-users 18866]Re: インデックス付きの配列の生成

Tadashi Jokagi ml @ elf.no-ip.org
2003年 11月 11日 (火) 16:48:58 JST


      ぢょ〜@よくきたなです.

#既に誰か回答してたりして…

Inoue Daigoさんの「[PHP-users 18853] インデックス付きの配列の生成」から
>$form=array("お名前" =>"name","メイル" =>"mail","パスワード" =>"password");
>$count=0;
>foreach ($form as $key => $tmp){
>	if($arrcount > 0){$conf .=" , ";}
>		$conf .= sprintf("\"%s\" => \"%s\"",$tmp,$key);	break;
>	$count++;
>	}
>}
>$confirm=array($conf);

    parse エラー出ました. 「{」と「}」の対応が取れてないです. で,

>print_r ($confirm);を実行すると
>Array ( [0] => "name" => "お名前" , "mail" => "メイル" , "password" => "パスワー
>ド");
>などと出ます。[0] => 以降は配列として認識していないようです?

    それは $conf の操作を「文字列」として行い, 最終行で要素が一つの配列
    を作成しています. つまり配列の操作をしているのではなく, print_r()
    の表示にそった(ように見える)「文字列」を作成してるに過ぎないです.

      最後の文章を見るに多分やりたいことは

<?php
$form=array("お名前" =>"name","メイル" =>"mail","パスワード" =>"password");
$newform = array();
foreach ( $form as $key=>$value) {
  $newform[ $value] = $key;
}
?>

    でいいのではないかと. $newform にキーと値が入れ代わって入ると思い
    ます.

#一応うちでの結果
[elf @ server tmp]$ php -Cq b.php
Array
(
    [name] => お名前
    [mail] => メイル
    [password] => パスワード
)

>$confirm=array("name" =>"お名前","mail" =>"メイル","password" =>"パスワード");
>のような逆に生成した配列に変更したいのです。

      残念ながらマニュアルで array_flip() を調べてみてください. 幸せに
    なれてしまいます.

----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf @ elf.no-ip.org
Yokukitana http://elf.no-ip.org/
Yokukitana with PukiWiki http://elf.no-ip.org/wiki/


PHP-users メーリングリストの案内