Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中推送值时自动递增空数组_Php_Arrays - Fatal编程技术网

在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!