如何处理我的数据


How to handle my data?

>编辑:我的方法的目的是从数据库的字符串中删除值。

我似乎在任何地方都找不到这个问题的答案。你能在这样的str_replace内连接吗:

str_replace($pid . ",","",$boom);
  • $pid 是一个页面 ID,例如 40
  • $boom是一个松散数组
如果我有一个字符串:40,56,12,我想

让它成为 56,12,但是如果没有连接器,它将产生:

56,12

当我在str_replace中拥有连接时,它不会做任何事情。这可能吗?

回答您的问题:是的,你可以。该代码的工作方式符合您的预期。

但这种方法是错误的。它不适用于$pid = 12;(最后一个元素,没有尾随昏迷(,并且会错误地替换$boom = '140,20,12'中的40,;

您应该将其保留在数组中,搜索不需要的值,如果发现它未从数组中设置,然后随着昏迷而内爆。

$boom = array_filter($boom);
$key = array_search($pid, $boom);
if($key !== false){
    unset($boom[$key]);
}
$boom = implode(',',$boom);

[+] 您的代码不起作用,因为$boom是一个数组,并且str_replace对字符串进行操作。

由于$boom是一个数组,因此您不需要在大小写中使用数组。

更改此内容

$boom = explode(",",$ticket_array);
$boom = str_replace($pid . ",","",$boom);
$together = implode(",",$boom);

$together = str_replace($pid . ",","",$ticket_array);
<小时 />

更新:如果还想使用阵列

$boom = explode(",",$ticket_array);
unset($boom[array_search($pid, $boom)]);
$together = implode(",",$boom);

编辑后,很明显您要从包含一个数字作为值的数组$boom中删除 $pid 的值。您可以使用 array_search 来查找它是否在 if in 哪个键中。然后,您可以从$boom unset元素:

$pid = '40';
$boom = explode(',', '40,56,12');
$r = array_search($pid, $boom, FALSE);
if ($r !== FALSE) {
    unset($boom[$r]);
}

老问题:

你能在这样的str_replace内连接吗:...?

是的,您可以,请参阅示例:

$pid = '40';
$boom = array('40,56,12');
print_r(str_replace($pid . ",", "", $boom));

结果:

Array
(
    [0] => 56,12
)

这与您所做的非常相似,因此您可能在错误的地方寻找问题。可以为参数使用任何字符串表达式

如果您不确定先创建变量,可能会更容易:

$pid = '40';
$boom = array('40,56,12');
$search = sprintf("%d,", $pid);
print_r(str_replace($search, "", $boom));

您应该将"票证数组"存储在单独的表中
并使用常规SQL查询(UPDATE,DELETE(来操作它。

数据库名称中的关系词是有原因的。而你正在以如此野蛮的方式滥用这个智能软件。

您可以使用

str_split,它将字符串转换为数组,然后使用 foreach 循环回显除第一个值之外的所有值。

$numbers_string="40,56,12";
$numbers_array = str_split($numbers_string);
//then, when you have the array of numbers, you could echo every number except the first separating them with a comma
foreach ($numbers_array as $key => $value) {
  if ($key > 0) {
    echo $value . ", ";
  }
}

如果你想跳过一个值,而不是它在数组中的位置,而是因为它的值,那么你可以这样做:

$unwanted_value="40";
foreach ($numbers_array as $key => $value) {
  if ($value != $unwanted_value) {
    echo $value . ", ";
  }
  else {
    unset($numbers_array[$key]);
    $numbers_array = array_values($numbers_array);
    var_dump($numbers_array);
  }
}