Javascript 如何使用php将xml子级添加到数组的第一个索引中

Javascript 如何使用php将xml子级添加到数组的第一个索引中,javascript,php,arrays,xml,mathml,Javascript,Php,Arrays,Xml,Mathml,我有多个包含mathml(xml)元素的数组 例如,我的arraylist: Array ( [0] => <mi>x</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>b</mi> <mo>±</mo><msqrt><msup><mi>b</mi>&

我有多个包含mathml(xml)元素的数组

例如,我的arraylist:

Array
(
    [0] => <mi>x</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>b</mi>      <mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac>
    [1] => <mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>3</mn>
    [2] => <mfrac><mrow><mn>2</mn><mi>x</mi><mo>+</mo><mn>2</mn></mrow><mn>3</mn></mfrac><mo>-</mo><mn>3</mn><mo>=</mo><mn>2</mn>
    [3] => <mo>-</mo><mn>3</mn><mo>+</mo><mn>2</mn><mo>=</mo><mi>x</mi>
)
数组
(
[0]=>x=-b±b2-4ac2a
[1] =>x+2=3
[2] =>2x+23-3=2
[3] =>-3+2=x
)
我希望所有数组都以
开头,但如果它以
开头,则与数组[3]类似

例如,我想要的预期输出

Array
(
    [0] =><mo>+</mo><mi>x</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac>
    [1] =><mo>+</mo><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>3</mn>
    [2] =><mo>+</mo><mfrac><mrow><mn>2</mn><mi>x</mi><mo>+</mo><mn>2</mn></mrow><mn>3</mn></mfrac><mo>-</mo><mn>3</mn><mo>=</mo><mn>2</mn>
    [3] =><mo>-</mo><mn>3</mn><mo>+</mo><mn>2</mn><mo>=</mo><mi>x</mi>
)
数组
(
[0]=>+x=-b±b2-4ac2a
[1] =>+x+2=3
[2] =>+2x+23-3=2
[3] =>-3+2=x
)
如您所见,所有数组都以
开头

下面是我添加它的当前代码:

$ress = array();
$arr_result=[];
for ($i=0; $i <= $length ; $i++) { 
    $ress=$result[$i];
    if ($pos = (substr($ress,0,3)!="<mo>")) {
        $arr_result[]=array_unshift($ress, "<mo>+</mo>");
    }
    else{
        $arr_result[]=$ress;    
    }

}
print_r($arr_result);



$result store the array. 
$ress=array();
$arr_result=[];

对于($i=0;$i您的代码有很多if问题,所以我刚刚写了一些新的东西

$result = ["<mo>+</mo><mi>x</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac>",
    "<mo>+</mo><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>3</mn>",
    "<mfrac><mrow><mn>2</mn><mi>x</mi><mo>+</mo><mn>2</mn></mrow><mn>3</mn></mfrac><mo>-</mo><mn>3</mn><mo>=</mo><mn>2</mn>",
    "<mo>-</mo><mn>3</mn><mo>+</mo><mn>2</mn><mo>=</mo><mi>x</mi>"
    ];
$arr_result=[];

for ($i=0; $i < count($result) ; $i++) {
    if (substr($result[$i],0,4)!="<mo>") {
        $arr_result[]= "<mo>+</mo>".$result[$i];
    }
    else    {
        $arr_result[]= $result[$i];
    }

}
print_r($arr_result);
$result=[“+x=-b±b2-4ac2a”,
“+x+2=3”,
“2x+23-3=2”,
“-3+2=x”
];
$arr_result=[];
对于($i=0;$i
这只是一次遍历每一行,检查
的前4个字符,如果不存在,则将它们添加到新值中

输出是

Array
(
    [0] => <mo>+</mo><mi>x</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac>
    [1] => <mo>+</mo><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>3</mn>
    [2] => <mo>+</mo><mfrac><mrow><mn>2</mn><mi>x</mi><mo>+</mo><mn>2</mn></mrow><mn>3</mn></mfrac><mo>-</mo><mn>3</mn><mo>=</mo><mn>2</mn>
    [3] => <mo>-</mo><mn>3</mn><mo>+</mo><mn>2</mn><mo>=</mo><mi>x</mi>
)
数组
(
[0]=>+x=-b±b2-4ac2a
[1] =>+x+2=3
[2] =>+2x+23-3=2
[3] =>-3+2=x
)

您可以尝试在for循环中执行类似操作。如果要搜索的字符串中确实存在字符串,strpos将返回您要查找的字符串的位置。因此,在这种情况下,如果字符串以“”开头,它将返回0

$your_string = "<mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>3</mn>";
$searching_tag = "<mo>";

$pos = strpos($your_string, $searching_tag);

if($pos === 0)
{
   //string starts with "<mo>"
}
else
{
   //string doesn't start with "<mo>"
}
$your_string=“x+2=3”;
$search_tag=“”;
$pos=strpos($your\u string,$search\u tag);
如果($pos==0)
{
//字符串以“”开头
}
其他的
{
//字符串不以“”开头
}

substr($ress,0,3)
永远不会返回-它不是三个字符long@iainn你能帮我吗:(@iainn已经帮你做了前面的评论:你应该能够解决这个问题。
substr($ress,0,3)
将最多返回三个字符。因此,这永远不会是
,因为需要提取四个字符。有关详细信息,请阅读。