Собственно вопрос такой. Получаю отчет яндекс директа
"a259784,259785 (2017-03-19 - 2018-03-19)"
AdGroupName Impressions Clicks Cost
Группа №2952489 10905034 939944 575118050000
Группа №2952490 10976444 944645 576994320000
Группа №2952491 10926208 947145 580294830000
Группа №2952492 10851243 945256 574691690000
Группа №2952493 10844346 946921 578424030000
Total rows: 5
Как мне его в массив преобразовать? Чтобы значения соответствовали ключам ?
'AdGroupName' => 'Группа №2952489' , Impressions => '10905034', ........
предположим, что tsv
это tab separated values и разделитель табуляция
Исходные
$txt =<<<TEXT
"a259784,259785 (2017-03-19 - 2018-03-19)"
AdGroupName Impressions Clicks Cost
Группа №2952489 10905034 939944 575118050000
Группа №2952490 10976444 944645 576994320000
Группа №2952491 10926208 947145 580294830000
Группа №2952492 10851243 945256 574691690000
Группа №2952493 10844346 946921 578424030000
Total rows: 5
TEXT;
разделим на строки
$data = explode("\n", $txt);
Уберем первую и последнюю
array_shift($data);
array_pop($data);
первая строка = ключи, делим по табу
$keys = explode("\t", array_shift($data));
остальное тоже по табу и сливаем с ключами
$result = array_map(function($v) use ($keys){.
return array_combine($keys, explode("\t", $v));
}, $data);
print_r($result);
Чуть-чуть доработал ответ teran:
$str = preg_replace("/Total rows:(.*)/", "", $str);
$str = explode("\n", $str) ;
unset($str[0]);
unset($str[1]);
foreach($str as $line){
if(!empty($line)){
list($gn, $imp, $cl, $coast) = explode("\t", $line);
$linearray = array(
"AdGroupName" => $gn,
"Imp" => $imp,
"clicks" => $cl,
"coast" => $coast,
);
print_R($linearray);
}
};
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть многомерный массив, который надо изменить в соответсвии с ключом, но никак не могу сделать так чтобы выводился ключ вот массив:
Есть большое количество input ов, которые нужно отправить если совпадает name с data-id сабмитаВот submit и inputы :