【问题标题】:how do i get this values using php arrays我如何使用 php 数组获取这些值
【发布时间】:2020-06-27 05:36:24
【问题描述】:
[
 ["STRG008c0",2,0,"orange","***STRG008*#*"], 
 ["STRG009c0",3,0,"orange","***STRG009*#*"], 
 ["STRG001c0",2,0,"green","***STRG001*#*"], 
 ["STRG003c0",3,0,"green","***STRG003*#*"], 
 ["STRG002c0",4,0,"green","***STRG002*#*"]
]

如何在 PHP 中循环获取以下内容?

***STRG008*#*
***STRG009*#*
***STRG001*#*
***STRG003*#*
***STRG002*#*

【问题讨论】:

  • *STRG008# *STRG009# *STRG001# *STRG003# *STRG002#
  • 你尝试了什么循环语法?
  • 能否说的更清楚些
  • 基本foreach() 并从数组中检索key=>value。但我们不会为你编写代码。自己尝试一下,如果遇到困难,请在此处提问。
  • 只需循环并使用end() 为您的个人子阵列。

标签: php arrays loops


【解决方案1】:

您似乎希望将最后一列的值作为字符串。

方法一:

将每个子数组的所有最后值收集到一个新变量中,稍后再说$result 和implode()。

<?php

$array = [
     ["STRG008c0",2,0,"orange","***STRG008*#*"], 
     ["STRG009c0",3,0,"orange","***STRG009*#*"], 
     ["STRG001c0",2,0,"green","***STRG001*#*"], 
     ["STRG003c0",3,0,"green","***STRG003*#*"], 
     ["STRG002c0",4,0,"green","***STRG002*#*"]
    ];

$result = [];
foreach ($array as $subarray) {
    $result[] = end($subarray);
} 

$result = implode(",",$result);

echo $result; 

方法二:

您可以使用array_column() 仅过滤最后一列值,然后使用implode() 过滤它们。这将是一条线。

<?php

$array = [
     ["STRG008c0",2,0,"orange","***STRG008*#*"], 
     ["STRG009c0",3,0,"orange","***STRG009*#*"], 
     ["STRG001c0",2,0,"green","***STRG001*#*"], 
     ["STRG003c0",3,0,"green","***STRG003*#*"], 
     ["STRG002c0",4,0,"green","***STRG002*#*"]
    ];


$result = implode(",", array_column($array,4));
echo $result;

【讨论】:

    【解决方案2】:

    你必须遍历一个数组数组

    $a = [
    ["STRG008c0",2,0,"orange","***STRG008*#*"], 
    ["STRG009c0",3,0,"orange","***STRG009*#*"], 
    ["STRG001c0",2,0,"green","***STRG001*#*"], 
    ["STRG003c0",3,0,"green","***STRG003*#*"], 
    ["STRG002c0",4,0,"green","***STRG002*#*"]
    ];
    
    $keys = array_keys($a);
    for($i = 0; $i < count($a); $i++) {
        
        foreach($a[$keys[$i]] as $key => $value) {
            if($key == 4) 
              echo $value . "\n";
        };
    }
    

    【讨论】:

    • 谢谢你的帮助。实际上它是从循环中生成的,所以这可能是它不起作用的原因.. 像这样的 $fullAry="[".substr(trim($nn), 0, -1)."]"; //echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".$fullAry; $firstArray=array($fullAry); $keys = array_keys($firstArray); for(@$i = 0; $i $value) { if($key == 4) 回显“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”。 $价值。 "\n"; } ; } ?>
    • 我生成的文字是这样的 ["STRG008c0",2,0,"orange","**STRG008*#"],["STRG009c0",3, 0,"橙色","**STRG009*#"],["STRG001c0",2,0,"green","**STRG001*#"] ,["STRG003c0",3,0,"green","**STRG003*#"],["STRG002c0",4,0,"green","**STRG002 *#"]
    【解决方案3】:

    你必须遍历内部数组:

    $array = [
         ["STRG008c0",2,0,"orange","***STRG008*#*"], 
         ["STRG009c0",3,0,"orange","***STRG009*#*"], 
         ["STRG001c0",2,0,"green","***STRG001*#*"], 
         ["STRG003c0",3,0,"green","***STRG003*#*"], 
         ["STRG002c0",4,0,"green","***STRG002*#*"]
        ];
    
    
        foreach ($array as $array_element) {
            echo $array_element[sizeOf($array_element) - 1]."\n";
        } 
    

    【讨论】:

    • ["STRG008c0",2,0,"orange","**STRG008*#"],["STRG009c0",3,0,"orange","**STRG009*#" ],["STRG001c0",2,0,"green","**STRG001*#"],["STRG003c0",3,0,"green","**STRG003*#"],["STRG002c0" ,4,0,"green","**STRG002*#"]
    • 您能具体说明您面临的问题吗? @RasikaBandaranayaka
    猜你喜欢
    • 2014-05-31
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多