Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何从特定键输出字符串_Php_Arrays - Fatal编程技术网

PHP如何从特定键输出字符串

PHP如何从特定键输出字符串,php,arrays,Php,Arrays,我试图从一个特定的键中找到并输出值 $name = 'G'; $ids = array(); foreach($arrayChart as $key){ $foundAtPosition = strpos($key['Name'], $name); if ($foundAtPosition === false || $foundAtPosition > 0) { continue; } $ids[] = $key['ID']; } echo join('

我试图从一个特定的键中找到并输出值

 $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提供 他帮我解决了以前的一个问题

我想通过使用key name中的姓氏字母“G”,从key-value-ID中找到ID号。
我想在同一行中输出它们。上述函数的问题在于它不打印任何内容。

请参见下面的答案

<?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没有试图理解上一个问题中提供的指导。这个问题只是转移了最后一个问题的答案,并使用了新的样本数据。这是一个“需求转储”,没有个人的辛劳或研究尝试。通过发布一个只有密码的答案,你是在延续帮助吸血鬼。我明白了。它不能完美地回答我的问题。我只是在寻找答案来打印我的结果。并不是说我会再次发布这个问题以获得答案。这对我自己来说已经足够了。如果只想匹配lastname,请使用下面的一个:$namevalue=$key['Name']$fullnamearray=explode(“,$namevalue”)$lastname=$fullnamearray[1]$foundAtPosition=strpos($lastname,$name);那Ella Grace T呢?接受的答案将与她匹配,但她的姓氏以
T
开头。如果
strpos()
调用返回
false
0
,则需要执行您的
continue
。这两个值都是
false-y