在Array中查找,然后用.png替换或添加其值


Find in Array then replace or add its value with.png

这里有一些命令。

$filewithoutext = array("1F621", "1F536", "1F365", "1F33B", "1F193", "0035-20E3");
$changtofilename = str_replace($vowels, ".png", "1F536 1F621");

我的要求是,如果值找到(1F33B 1F193),则系统会将其更改为.png(如1F536.png 1F621.png

试试这个,

<?php
    $vowels = array("1C536", "1F621");
    $array = array("1F621", "1F536", "1F365", "1F33B", "1F193", "0035-20E3");
    foreach ($vowels as $key => $val) {
        if (in_array($val, $array)) {
            $key = array_search($val, $array);
            $array[$key] = $array[$key] . ".png";
        }
    }
    print_r($array);

请参阅此处的演示

尝试以下解决方案:

<?php
$vowels = array("1F536", "1F621");
$array = array("1F621", "1F536", "1F365", "1F33B", "1F193", "0035-20E3");
$arr = array_map(function(&$val) use($vowels){
    $value = (in_array($val, $vowels) !== false) ? $val . '.png' : $val;
    return $value;
}, $array);
print_r($arr);

CCD_ 1将具有期望的结果。

 $find = array('1F33B', '1F621');
    $replace = array('1F33B.png', '1F621.png');
    $filewithoutext = array("1F621", "1F536", "1F365", "1F33B", "1F193", "0035-20E3");
    $changtofilename = str_replace($find, $replace, $filewithoutext);

使用array_map和匿名函数

$files = array("1F621", "1F536", "1F365", "1F33B", "1F193", "0035-20E3");
$targets = array("1F536", "1F621");
$filesWithExtensions = array_map(function($item) use ($targets) {
    if (in_array($item, $targets)) {
        $item .= '.png';
    }
    return $item;
}, $files);
print_r($filesWithExtensions);