0

我正在努力尝试对脚本中的特定数组进行简单的检索,因此我有一个原始的关联数组:

$vNArray ['Brandon']  = $item[3]; 
$vNArray['Smith']= $item[4]; 
$vNArray ['Johnson']= $item[5];
$vNArray ['Murphy']= $item[6];
$vNArray ['Lepsky']= $item[7];

它为大多数值输出一个共同的结果:

foreach ($vNArray as $key => $value){

 if(!empty($value)){
    $result  .= "\t\t\t\t<li><strong>$key</strong>"  .$value.   "</li>\n";
 }

但是后来我希望这些数组中的两个以不同的方式呈现,所以我添加了另一个人建议的脚本:

$display_id=array('Brandon', 'Murphy');

foreach ($vNArray as $key => $value){
  if(!empty($value)){
    //Looks into the display_id array and renders it differently
    if (in_array($key, $display_id)) {
    $result  .= "\t\t\t\t<li id=\"$key\"><strong>$key</strong>$value</li>\n";
    } else {
    $result .= "\t\t\t\t<li><strong>$key</strong>$value</li>\n";
    }
  }

}

问题是我希望这些数组的结果都包含在第一个结果中,但是当我尝试输出 $result .= "\t\t\t\t $key[1] ".$value[1]. "\n";

PHP 认为索引是值的字符索引,所以我遇到了像 id="/" r这样的主要语法问题。

我也试过

$result  .= "\t\t\t\t<li id=\"". $display_id['Brandon']$value.\""><strong>$key[1]</strong>". $display_id['Murphy']$value." </li>\n";

但我仍然遇到错误的语法问题......比如

syntax error, unexpected T_VARIABLE

或其他类似的错误。

有人可以帮忙吗?

已编辑


我已经进行了语法更正,但我仍然需要指定索引:

结果来自

result  .= "\t\t\t\t<li id=\"". $display_id['Brandon'] . $value."\"><strong>" .   $key[1] . "</strong>". $display_id['Murphy'] . $value." </li>\n";

需要(注意每个值如何在相同的输出上取决于我的目标):

<li id="Brandon Value"><strong>Brandon</strong> Murphy Value</li>

现在它忽略 的索引值。$display_id['Brandon'] 。$价值。或者 。$display_id['墨菲'] 。$value." 一起重复:

<li id="Brandon Value"><strong>Brandon</strong> Brandon Value</li>
<li id="Murphy Value"><strong>Murphy</strong> Murphy Value</li>
4

2 回答 2

1

做吧$key,忘记[1]一点。与 相同$value

于 2011-02-25T12:51:55.640 回答
0

每个值都需要与另一个值连接,例如:

echo $a . $b . $c . $d . $e;

请注意.将每个变量与 next / prev 变量连接起来的联系人,因此您的行:

$display_id['Brandon']$value

应该看起来像:

$display_id['Brandon'] . $value
                       ^

我会做以下事情。

$result  .= sprintf('<li id="%s"><strong>%s</strong> %s</li>',$display_id['Brandon'] . $value,$key[1],$display_id['Murphy'] . $value);

同样使用 sprintf 也可以使您的代码更具可读性。

于 2011-02-25T13:01:28.370 回答