【问题标题】:PHP How to Output String from Specific Key [duplicate]PHP如何从特定键输出字符串[重复]
【发布时间】:2020-10-24 03:08:47
【问题描述】:

我正在尝试从特定键中查找并输出值。

 $name = 'G';
 $ids = array();

foreach($arrayChart as $key){

$foundAtPosition = strpos($key['Name'], $name);
if ($foundAtPosition === false ||
    $foundAtPosition > 0) {
    continue;
}   

  $ids[] = $key['ID'];
}
echo join(',', $ids) . "\n";

这是数组

$arrayChart = array(
array(
 "Name" => "Mike G",
 "ID" => "0001234",
 "Hours" => 38
 ),
array(
  "Name" => "Mike L",
  "ID" => "0005678",
  "Hours" => 42
 )
 array(
  "Name" => "John G",
  "ID" => "0003615",
  "Hours" => 42
 ) 
);

以上代码由@zedfoxus 提供 他帮我解决了以前的问题。

我想通过使用键 Name 中的姓氏字母“G”从键值 ID 中找到 ID 号。 我想在同一行输出它们。上述函数的问题是它不打印任何东西。

【问题讨论】:

  • Ella-Grace T 怎么样?接受的答案将与她匹配,但她的姓氏以 T 开头。
  • 如果strpos() 调用返回false0,则需要执行您的continue。这两个值都是false-y

标签: php arrays


【解决方案1】:

请看下面的答案。

<?php

$arrayChart = array(
array(
 "Name" => "Mike G",
 "ID" => "0001234",
 "Hours" => 38
 ),
array(
  "Name" => "Mike L",
  "ID" => "0005678",
  "Hours" => 42
 ),
 array(
  "Name" => "John G",
  "ID" => "0003615",
  "Hours" => 42
 ) 
 );
 
 $name = 'G';
 $ids = array();

foreach($arrayChart as $key){

$foundAtPosition = strpos($key['Name'], $name);
if ($foundAtPosition) {
    $ids[] = $key['ID'];
}   
}
echo join(',', $ids) . "\n";
?>

【讨论】:

  • 这不针对姓氏中的 G。这会将 G 定位在第一个字符之后的任何位置。
  • 这个答案缺少教育解释。您可能会注意到 OP 没有尝试理解上一个问题中提供的指导。这个问题只是转移了最后一个问题的答案并使用了新的样本数据。这是一个“需求转储”,没有个人辛劳或尝试研究。通过发布仅代码的答案,您正在延续 Help Vampirism。
  • 我明白了。它不能完美地回答我的问题。我只是在寻找打印结果的答案。是不是我会再次发布这个问题以获得答案。这足以让我自己弄清楚..
  • 如果您只想匹配姓氏,请使用以下之一:$namevalue = $key['Name']; $fullnamearray = explode(" ",$namevalue); $lastname = $fullnamearray[1]; $foundAtPosition = strpos($lastname, $name);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多