検索

ホームページ  >  に質問  >  本文

PHPにおける配列要素の動的パスの問題

配列内の要素のパスがわかっている場合、この要素の値を取得するにはどうすればよいですか?
次のコードはエラーを報告します。それを解決するにはどうすればよいですか?誰か良いアイデアはありますか?

$m = ['a'=>['b'=>['c'=>'@@@@@']]];

$x = 'a.b.c';
$y = str_replace('.','\'][\'',$x);
$y = 'm[\''.$y.'\']';

エコー $$y 

エラーが報告されます:

注意: 未定義の変数: m['a']['b']['c'] (/web/root/index.php の 9 行目)
世界只因有你世界只因有你2793日前518

全員に返信(6)返信します

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:11:31

    動的変数名は変数に対してのみ有効で、配列要素には無効です。 'm["a"]["b"]["c"]'先頭に$を付けても文字列全体が変数とみなされ、当然見つかりません。

    ループを使用するだけです

    リーリー

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:11:31

    ?まず第一に、出力したエコーの後の変数 $y にはもう 1 つあります $符号,其次如果你想获取@@@@@,直接$m['a']['b']['c']

    返事
    0
  • 迷茫

    迷茫2017-05-16 13:11:31

    実際、あなたが書いたことは正しいです。急いで質問しないで、コードを見てください

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:11:31

    個人的には、この種の問題に直面した場合、文字列置換を使用する代わりに再帰を使用して対処することを検討する必要があると思います。

    リーリー

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:11:31

    リーリー

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:11:31

    laravelフレームワークを使用している場合は、

    リーリー

    返事
    0
  • キャンセル返事