Объединить массив со строковой переменной в PHP - PullRequest
0 голосов
/ 24 октября 2018
implode(',', $a);

Я хочу прикрепить переменную $q перед $a, вот так

implode(',', $q.$a); 

Но это не работает.Как я могу поместить 2 переменные в функцию взрыва?

$a - это массив с доменными именами, такими как "com, org", а $q - это текст (строка), который вы вводите до того, как доменные имена будутпоявляются.

Я получаю следующую ошибку:

в строке передан неверный аргумент ..

Весь код:

$a = ['nl','net','com','co'];
$q = $_REQUEST["q"];

$domain = explode(".", $q);
$ext = @$domain[1] ?: ' ';


if (empty($ext)) {
    echo implode(',',$a);
} else if (in_array($ext, $a)) {
    echo $q;
} else {
    $r = [];
    foreach ($a as $x) {
        if (strstr($x, $ext)) {
            $r[] = $x;
        }
    }
    echo (count($r)) ? implode(',',$r) : implode(',',$a);
}

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Вам нужно добавить $q перед implode функцией.Вы можете добавить свой $q в массив $a, используя функцию array_map.

$array = array('com', 'org', 'net');
$q = 'test';
$array = array_map(function($value) { 
                    $q= "test"; // you $q value goes here.
                    return $q.".".$value; 
         }, $array);

echo implode(',',$array);
0 голосов
/ 24 октября 2018

Попробуйте

1002 *
0 голосов
/ 24 октября 2018

Если $a - это массив, а $q - строка префикса, вы можете сделать это за 2 шага:

Добавьте префикс с помощью:

$a = array("com", "co");
$q = "robot.";
foreach ($a as &$value)
    $value = $q.$value;

Во-вторых, используйтеimplode:

echo implode(',',$a);

вывод:

robot.com,robot.co

Отредактировано

Я думаю, это будет более подходящим для вас:

$a = array("com", "co", "org");
$q = "robot.c";
$arr =  explode(".", $q);

$output = array();
foreach ($a as &$value) {
    if (substr($value, 0, strlen($arr[1])) === $arr[1])
        $output[]= $arr[0] . "." . $value;
}
echo implode(',',$output);

В этом коде вы берете префикс домена и ищете все доменные имена, которые могут подходить для префикса.

Обратите внимание, что в этом примере у нас есть домен org, но он не отображаетсяпотому что ваш префикс c

...