2011-12-01 53 views
1

我有几个值的数组,并希望做这样的事情:如何计算数组中值的订单号?

$arrayvalues = array_reverse(explode(', ', somefunction())); 
foreach ($arrayvalues as $arrayvalue) : 
      printf('<li class="'.$countvalue.'">'.$arrayvalue.'</li>'); 
endforeach; 

我想在$ countvalue值的数组中

即数...数组将是这样的:(“苹果”,“橙”,“柚子”)

我想数量以匹配这些值 苹果= 1的顺序号,橙色= 2,葡萄柚= 3

或实际上即使它'我只是需要插入一个增量编号表示的css类

我试着玩$ i ... count ...但我没有知道如何实现我想要的;我更比一个编码器一个设计师,我看着在PHP帮助,但无法找到我的情况澄清溶液

谢谢

回答

0

使用for循环遍历您的阵列,像这样:

for($i = 0, $j = count($arrayvalues); $i < $j; $i++) : 
      printf('<li class="' . ($i + 1) . '">' . $arrayvalues[$i] . '</li>'); 
endfor; 

如果你想索引$i的一个开始,你需要添加一个在printf语句。

备注:如果您没有实际生成格式化输出,则不需要printf。

+2

语法错误:'endforeach' =>'endfor'我应该-1因为没有测试您提供的代码作为答案。 –

+1

+1用于初始化$ j并且不在循环的每个步骤中对数组进行计数,因为大多数编码器在那些天 –

+0

@SOlivers编辑中打破了功能,回滚了。 –

1
$arrayvalues = array_reverse(explode(', ', somefunction())); 
$i = 0; 
foreach ($arrayvalues as $arrayvalue) 
{ 
      $i++; 
      printf('<li class="'.$i.'">'.$arrayvalue.'</li>'); 
} 
+1

+1,我正要'printf()'相同的答案。 :)关于Fulvio – Pateman

+0

问题你的$ i ++;需要在printf之前('

  • '。$ arrayvalue。'
  • '); '(“apple”,“orange”,“grapefruit”) 我想要数字匹配这些值的顺序号apple = 1,orange = 2,grapefruit = 3' –

    +0

    -1:我不是当他的阵列不关联时,主张混合'foreach'和手动计数器。 –

    0
    $arrayvalues = array_reverse(explode(', ', somefunction())); 
    $i=0; 
    foreach ($arrayvalues as $arrayvalue) : 
          ++$i; 
          $countvalue = $i; 
          printf('<li class="'.$countvalue.'">'.$arrayvalue.'</li>'); 
    endforeach; 
    

    我们(或I)建议你使用一个正常的循环。

    for($i = 0; $i < count($arrayvalues); $i++) { 
        printf('<li class="'.($i+1).'">'.$arrayvalue.'</li>'); 
    } 
    
    4

    您已经有一个基于订单的增量编号。请记住,这只有在您的密钥基于0时才有效。如果使用关联数组,则需要使用for循环(如nickb所示)。

    $arrayvalues = array_reverse(explode(', ', somefunction())); 
    foreach ($arrayvalues as $key => $arrayvalue){ 
        echo "<li class='$key'>$arrayvalue</li>"; 
    } 
    
    +4

    这是你应该做的。到目前为止,所有其他答案都是不必要的复杂,而复杂的代码会导致错误的代码。 @LeviMorrison不,他不会这样做:“实际上,即使它只是一个增量数字,根据回应的值也无所谓”。 '$ key'值保证是唯一的。 –

    +0

    @AbhiBeckert注意。而且,printf在这里没用。我会建议'回声“

  • $ arrayvalue
  • ”;'没有必要不要。 –