PHP回声数组和内部信息

问题描述 投票:-4回答:4

如何回显M,然后回显M下的值并与字母K相同?我尝试使用foreach,但它只是警告我有关字符串转换的信息。这是我尝试过的foreach

foreach($translations as $value){
    echo $value . "<br>";
}

这里是数组

$translations = [
    "M" => [
        "Monday" => "maanantai",
        "Machine" => "kone",
        "Male" => "mies",
    ],
    "K" => [
        "Ketchup" => "Ketsuppi",
        "Key" => "Avain",
    ],

]; 

编辑It should make it like this, so there is translation of that word

php arrays
4个回答
2
投票

尝试一下

foreach($translations as $name => $value){
  echo $name . "<br>";
  foreach($value as $key => $item){
    echo $key . " " . $item . "<br>";
  }
}

1
投票

您需要了解收到的错误消息实际上告诉您什么:这不是“关于字符串转换的麻烦”,而是:“数组到字符串转换”。

  • echo输出一个字符串。
  • 您将其输入数组。
  • php尝试将该数组转换为字符串以执行您要求的操作。
  • 这没有太大意义...

相反,您应该首先将数组转换为字符串,以便可以控制该字符串表示数组的方式。这是一个示例:

<?php
$translations = [
    "M" => [
        "Monday" => "maanantai",
        "Machine" => "kone",
        "Male" => "mies",
    ],
    "K" => [
        "Ketchup" => "Ketsuppi",
        "Key" => "Avain",
    ],

]; 

foreach ($translations as $key => $val) {
    echo var_export($val, true) . "\n";
}

输出为:

array (
  'Monday' => 'maanantai',
  'Machine' => 'kone',
  'Male' => 'mies',
)
array (
  'Ketchup' => 'Ketsuppi',
  'Key' => 'Avain',
)

PHP提供了许多这样的便捷功能来转换不同的格式。您肯定要开始研究文档。它很精确,并附带了很多示例:https://php.net/manual/en/language.types.array.php


1
投票

在您的foreach $value中是一个数组,您不能直接回显数组。 Demo

foreach($translations as $value){
    echo print_r($value,1);
}

0
投票

两者都一样,为清楚起见,这是您的代码示例。

$translations = 
[
    "M" => [
        "Monday" => "maanantai",
        "Machine" => "kone",
        "Male" => "mies",
    ],

    "K" => [
        "Ketchup" => "Ketsuppi",
        "Key" => "Avain",
    ],

];

foreach ($translations as $name => $value) {
    if ($name == 'M') {
        echo $name . "<br>";
        foreach ($value as $item) {
            echo $item . "<br>";
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.