【问题标题】:join() PHP function removes duplicated values?join() PHP 函数删除重复值?
【发布时间】:2012-04-21 14:05:29
【问题描述】:

你好吗? 当我在数组中使用带有重复值的 join() 函数时,join 函数会返回数组但会删除重复项,我不希望这样!

例子:

$array= array(1, 2, 2, 2);
$res = join(',', $array);

我明白了:

1,2

但我希望结果是:

1,2,2,2

希望有人可以帮助我!谢谢你

【问题讨论】:

  • 当我复制并粘贴您那里的内容时工作正常。你能告诉我们更多细节吗?
  • 这段代码不按你说的做:codepad.org/mjentvlR

标签: php function join duplicates


【解决方案1】:

使用implode:implode(',', $array) 虽然join只是implode的别名,但它是正确使用的函数

【讨论】:

  • implode() 是处理这个问题的正确方法。
  • 我在发布之前尝试使用 implode() 但我得到了与 join() 函数相同的结果
  • 使用您发布的确切数组(除了 implode 之外)将为您提供所需的结果。你是如何创建数组的?您是否有可能覆盖值或通过array_unique 传递它?
  • 我正在创建这样的数组: while ($coordenada = mysql_fetch_assoc($resultado)) { $arrayX[$coordenada['ARTICULO']] = $coordenada['ARTICULO']; $arrayY[$coordenada['CANTIDAD']] = $coordenada['CANTIDAD']; arrayY 是具有重复值的那个...你是说我要避免重复值吗?
  • $arrayX[$coordenada['ARTICULO']] 可能正在覆盖。如果$coordenada['ARTICULO'] 有多次相同的值,它只会保留$coordenada['ARTICULO'] 的最后一个值
【解决方案2】:

你说这是你的代码:

while ($coordenada = mysql_fetch_assoc($resultado)) {
    $arrayX[$coordenada['ARTICULO']] = $coordenada['ARTICULO'];       
    $arrayY[$coordenada['CANTIDAD']] = $coordenada['CANTIDAD']; 
}

在这种情况下,您不会像您想象的那样填充数组。您的代码正在这样做:

$arrayY[1] = 1;
$arrayY[2] = 2;
$arrayY[2] = 2;
$arrayY[2] = 2;

所以只包含 2 个值。如果您想要重复,请将您的代码更改为:

while ($coordenada = mysql_fetch_assoc($resultado)) {
    $arrayX[] = $coordenada['ARTICULO'];          
    $arrayY[] = $coordenada['CANTIDAD']; 
}

【讨论】:

  • 是的,这几乎解决了它!我不知道我为什么要这样做! thx 和 sry 因为问题最终变成了另一件事!感谢 nathanjosiah 的帮助!
猜你喜欢
  • 2012-07-24
  • 1970-01-01
  • 2021-04-02
  • 2019-02-03
  • 2021-09-30
  • 2019-01-18
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
相关资源
最近更新 更多