[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 メーリングリストの案内