Я пытаюсь вставить массив в файл php. Однако я могу вставить массив в php-файл, но формат не соответствует желаемому. У нас есть 2 файла
File1.php
<?php include_once("../dc/dcCommonLib.php"); include_once("../dc/persistence/UserData.php"); require_once("../../lib/include/connect.inc.php"); $_SESSION["survey"] = "BestBuyAug2012"; $idLink = dbconnect($_SESSION["survey"]); $surveyWidget = rendererSurveyLoadHandler(); setDataToSession("surveywidget",$surveyWidget); $userData = &UserData::getInstance(); $userData->setSurvey($surveyWidget); saveFkidsToOidToFkidMappingArray($userData->OidToFkidMapping); // prepare demo array prepareItemArray($userData->OidToFkidMapping["Demographic"]["Q"],$demo,"b"); // prepare item array prepareItemArray($userData->OidToFkidMapping["Default"]["Q"],$item,"i"); prepareItemArray($userData->OidToFkidMapping["Default"]["M"],$item,"i"); // prepare comment array prepareCommentArray($userData->OidToFkidMapping["Comment"]["C"],$comment); if(!function_exists('file_put_contents')) { function file_put_contents($filename, $data,$type, $file_append = false) { $fp = fopen($filename, (!$file_append ? 'w+' : 'a+')); if(!$fp) { trigger_error('file_put_contents cannot write in file.', E_USER_ERROR); return; } if($type){ $count = count($data); $i = 1; //loop through your type array and append comma , to each except last foreach($data as $key=>$val) { //if we are before last key, append comma if($i < $count) $data[$key] .= ','; $i++; } //run same preg_replace as before $data2 = preg_replace('/[\[\]]/','"',print_r($data,TRUE)); //write to file fputs($fp, "$" . $type . " = " . print_r($data2,TRUE)); } else { fputs($fp, print_r($data, TRUE)); } fclose($fp); } } print("Strart writting ..................."); file_put_contents("staticSurveyDataFileTest.php", "<?php\n","",true); file_put_contents("staticSurveyDataFileTest.php", $item,"itemFkids",true); file_put_contents("staticSurveyDataFileTest.php", $demo,"demoFkids",true); file_put_contents("staticSurveyDataFileTest.php", $comment,"commentFkids",true); file_put_contents("staticSurveyDataFileTest.php", "?>","",true); print("written ..."); function prepareItemArray($userDataArray, &$item, $itemStr) { if(is_array($userDataArray)) { foreach($userDataArray as $questId=>$respGrp) { $selectionGrp=array_unique($respGrp); if(count($selectionGrp)==1) { $respGrpId=key($respGrp); $respId = key($respGrp[$respGrpId]); $item[$questId."_".key($respGrp)]=$itemStr.$respGrp[$respGrpId][$respId]; }else { foreach ($respGrp as $respGrpId=>$resp) { $respGrp[$respGrpId]=$itemStr.$resp; } $item[$questId."_".key($respGrp)]=$respGrp; } } } } function prepareCommentArray($userDataArray, &$item) { if(is_array($userDataArray)) { foreach($userDataArray as $questId=>$respGrp) { $selectionGrp=array_unique($respGrp); if(count($selectionGrp)==1) { $respGrpId=key($respGrp); $item[$questId."_".key($respGrp)]=$respGrp[$respGrpId]["fk_id"]; } } } } ?>
Массив из этого файла вставляется в другой файл по имени staticSurveyDataFileTest.php
staticSurveyDataFileTest.php
<?php $itemFkids = Array ( "203_19" => i27,//double quotes missing "207_22" => i28,//double quotes missing "357_22" => i99,//double quotes missing "370_70" => i104,//double quotes missing "377_72" => i105,//double quotes missing "140_8" => i1,//double quotes missing "141_8" => i2,//double quotes missing "142_8" => i3,//double quotes missing "143_8" => i4,//double quotes missing "144_8" => i5,//double quotes missing "145_8" => i6,//double quotes missing "151_8" => i7,//double quotes missing "152_8" => i8,//double quotes missing "158_8" => i9,//double quotes missing "164_8" => i10,//double quotes missing "165_8" => i11,//double quotes missing "166_8" => i12,//double quotes missing "167_8" => i13,//double quotes missing "168_8" => i14,//double quotes missing "169_8" => i15,//double quotes missing "175_8" => i16,//double quotes missing "176_8" => i17,//double quotes missing "182_8" => i18,//double quotes missing "183_8" => i19,//double quotes missing "184_8" => i20,//double quotes missing "190_8" => i21,//double quotes missing "196_8" => i22,//double quotes missing "197_8" => i23,//double quotes missing "198_8" => i24,//double quotes missing "199_8" => i25,//double quotes missing "200_8" => i26,//double quotes missing "214_8" => i29,//double quotes missing "215_8" => i30,//double quotes missing "216_8" => i31,//double quotes missing "222_8" => i32,//double quotes missing "223_8" => i33,//double quotes missing "224_8" => i34, "225_8" => i35, "226_8" => i36, "227_8" => i37, "233_8" => i38, "234_8" => i39, "235_8" => i40, "236_8" => i41, "237_8" => i42, "243_8" => i43, "244_8" => i44, "245_8" => i45, "251_8" => i46, "252_8" => i47, "253_8" => i48, "254_8" => i49, "255_8" => i50, "256_8" => i51, "257_8" => i52, "263_8" => i53, "264_8" => i54, "265_8" => i55, "266_8" => i56, "267_8" => i57, "268_8" => i58, "269_8" => i59, "270_8" => i60, "271_8" => i61, "272_8" => i62, "278_8" => i63, "279_8" => i64, "280_8" => i65, "281_8" => i66, "282_8" => i67, "283_8" => i68, "289_8" => i69, "290_8" => i70, "296_8" => i71, "297_8" => i72, "298_8" => i73, "299_8" => i74, "300_8" => i75, "301_8" => i76, "307_8" => i77, "308_8" => i78, "309_8" => i79, "310_8" => i80, "311_8" => i81, "312_8" => i82, "313_8" => i83, "314_8" => i84, "315_8" => i85, "316_8" => i86, "317_8" => i87, "318_8" => i88, "324_26" => i89, "328_37" => i90, "332_48" => i91, "338_59" => i92, "344_59" => i93, "345_59" => i94, "351_8" => i95, "352_8" => i96, "353_8" => i97, "354_8" => i98, "364_8" => i100, "365_8" => i101, "366_8" => i102, "367_8" => i103 )//comma missing $demoFkids = Array ( "129_2" => b1//double quotes missing )//comma missing $commentFkids = Array ( "373_375" => 1,//double quotes missing "380_382" => 2//double quotes missing )//comma missing ?>
Нам нужно вставить файл что-то вроде этого
Желаемый результат
<?php $itemFkids = Array ( "203_19" => "i27",//notices the double quotes here "207_22" => "i28", "357_22" => "i99", . . . . . . ),//notice a comma here $demoFkids = Array ( "129_2" => "b1"//notices the double quotes here ),//notice a comma here $commentFkids = Array ( "373_375" => "1", "380_382" => "2"//notices the double quotes here ),//notice a comma here ?>
Я попытался выполнить поиск в google и других php-сайтах, но не нашел много об этом. Поэтому я бы очень признателен, ЕСЛИ ВЫ МОЖЕТЕ ИЗМЕНИТЬ МОЙ КОД и сделать эту работу. Заранее спасибо 🙂
На мой взгляд, вы должны использовать базу данных.
Во всяком случае, я думаю, что foreach
будет работать, если лучшее решение не будет найдено.
Пример:
$second_array = array(); foreach($first_array as $key => $value){ $second_array[$key]='"'.$value.'"'; }
Предполагается, что кавычки предназначены для отображения html.
Проверьте сериализацию . Это другой подход от того, что вы делаете, но гораздо более чистым. Просто, это способ взять объект PHP, превратить его в строку (которая может быть сохранена, прочитана и т. Д.), И десериализация будет преобразовывать ее обратно в то, как она была.