我有多维数组(名称+图像路径),其中一些名称相似,例如:
array("name" => "OpenGL", "img" => "OpenGL.png"),
array("name" => "OpenGL Lighting ( Advanced )", "img" => "OpenGL-LightingAdvanced.png")
然后我用图像替换名称。
foreach ($extensions as $extension) {
$ret=str_ireplace($extension['name'],'<img src="images/'.$extension['img'].'" alt="'.$extension['name'].'" />: ',$ret);
}
只要数组从最短的名称排序到最长的名称,它就可以工作,但在这种情况下,更长的名称将永远不会改变,例如。OpenGL 光照(高级)将是
<img src="images/OpenGL.png" alt="OpenGL" /></div>: Lighting ( Advanced )
当我将它从长名称排序到最短名称时,情况更糟,因为它会在 src 中更改名称:
<img src="images/<img src="images/OpenGL.png" alt="OpenGL" />: -LightingAdvanced.png" alt="<img src="images/OpenGL.png" alt="OpenGL" />: Lighting ( Advanced )" />:
我唯一的想法是检查名称之前是否没有src="images/或alt=",如果是 - 替换,但我不知道如何轻松做到。