在PHP中推送值时自动递增空数组
我将变量中的文本转换为数组字符串:在PHP中推送值时自动递增空数组,php,arrays,Php,Arrays,我将变量中的文本转换为数组字符串: $text = 'Today is Monday'; $textTab = explode(" ",$text); 我有一个空数组,声明为: $tab[] = array(); $value = ''; 我有几个条件和指示: foreach($textTab as $iter){ if($iter == //something){ array_push($tab,$value); $value = ''; }
$text = 'Today is Monday';
$textTab = explode(" ",$text);
我有一个空数组,声明为:
$tab[] = array();
$value = '';
我有几个条件和指示:
foreach($textTab as $iter){
if($iter == //something){
array_push($tab,$value);
$value = '';
}else{
$value = $iter;
}
}
当我尝试var_转储选项卡时,在for循环之后,$tab只有一个条目
有人能解释我的错误吗
$tab[] = "asd"
正在将条目推送到数组中,您需要的是
$tab = array()
根据您的评论,如果您希望从字符串“Je suis Hugo et j'ai 19 ans”中输出
数组(2){[0]=>“Je suis Hugo”[1]=>“j'ai 19 ans”}
,您可以在“et”处简单分解
$string = "Je suis Hugo et j'ai 19 ans";
$output = explode('et', $string);
var_dump($output);
要使其动态化,请尝试
$splits = ['et', 'je'];
$string = "Je suis Hugo et j'ai 19 ans";
$string = strtolower($string);
$output = [];
foreach($splits as $split) {
$outputTmp = explode($split , $string);
$output[] = array_values(array_filter($outputTmp));
}
var_dump($output);
1.请确保向我们展示完整真实的代码2。使用
var_dump()
可以得到什么输出?您希望得到什么?很抱歉,这是法语版本。var_dump返回我'array(2){[0]=>array(0){}[1]=>string(17)“mardi 14 fevrier”}。它只需要第一部分的时间sentence@HugoTor您期望的最终结果是什么?@aharen如果您看到了pastebin,我想在数组中插入由“et”分隔的文本。例如,“jesuis Hugo et j'ai 19 ans”。数组[0]=“Je suis Hugo”和数组[1]=“j'ai 19 ans”。@HugoTor为什么不使用“et”进行explode
,这样会得到您想要的结果,例如:$output=explode('et',“Je suis Hugo et j'ai 19 ans”);变量转储(输出)代码>我认为,当您启用错误报告时,您也会收到一条警告,正好指向这一点。如果我将$tab[]=array()替换为$tab=array(),它只会删除第一个索引,但其他任何更改都不起作用。但是正如我在上面的评论中所说,我想让我的函数为其他词工作:/you认为爆炸($word,$string)可能吗?@HugoTor更新了答案,您可以在$splits
数组中定义拆分点,如$splits=['et','je']代码>即使使用手册,我也不太理解函数array\u filter.:但我认为整个代码都可以正常工作!:)我在这里使用array\u filter()
删除具有空值的数组项,并且由于array\u filter()
保留数组键array\u values()
用于使它们休息:)希望代码对您有效,请告诉我。干杯:)太完美了!:)我们必须制定一个新的算法,但这是解决方案:)Ty!