【发布时间】:2018-05-25 13:40:00
【问题描述】:
我有多个包含 mathml(xml) 元素的数组。
例如我的数组列表:
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>
)
我希望所有数组都以 <mo> 开头,但如果它以 <mo> 开头,那么它就像数组 [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>
)
如您所见,所有数组都以<mo> 开头。
下面是我当前添加它的代码:
$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.
【问题讨论】:
-
substr($ress,0,3)永远不会返回- 它不是三个字符长 -
@iainn 你能帮我吗:(
-
@iainn 已经帮助您解决了之前的评论:您应该能够解决这个问题。
substr($ress,0,3)最多返回三个字符。所以,这永远不会是<mo>,因为这需要提取四个字符。阅读php.net/manual/en/function.substr.php了解更多信息。
标签: javascript php arrays xml mathml