にマップ:PHPの配列操作 - 特定のセットを操作し、バックiはデータベースからデータを引き出し、フォーマットの配列を取得していアレイ
array(2) {
[0]=>
array(3) {
["topicname"]=>
string(19) "Signs giving orders"
["title"]=>
array(4) {
[0]=>
string(4) "Stop"
[1]=>
string(8) "No entry"
[2]=>
string(10) "No cycling"
[3]=>
string(17) "No motor vehicles"
}
["filename"]=>
array(4) {
[0]=>
string(44) "DQP0GVcUA2dG8ZfqeVYLO68YodgYnJMOjJw2o2iC.png"
[1]=>
string(44) "vWUcHGX3VVKPT08JXh9mAqZ40pT0vfDJ78Yoqovz.png"
[2]=>
string(44) "bplX8bbwHzHKX9n6SvvQiYNhkWwKxi2bhsrQ94U2.png"
[3]=>
string(44) "8KAEovxQn3EgzHoZg1euSgNYTFupnLdKusJ4SIEP.png"
}
}
[1]=>
array(3) {
["topicname"]=>
string(13) "Warning Signs"
["title"]=>
array(4) {
[0]=>
string(29) "Road narrows ahead both sides"
[1]=>
string(47) "Road narrows on right (left if symbol reversed)"
[2]=>
string(10) "Crossroads"
[3]=>
string(22) "Junction on bend ahead"
}
["filename"]=>
array(4) {
[0]=>
string(44) "uZ7fnDjlYfKU3pdSQ7wAq4siFryA6jSEitmRyPhp.png"
[1]=>
string(44) "4pslo6cC0I2E606DscWxiDD3sCBW7ZGaESQES4r0.png"
[2]=>
string(44) "xdVBMpV6PTLtX48M67kfWOqy59rsYMDZMuWbqDwl.png"
[3]=>
string(44) "hLtIGikARgARqmSqit4mqNXRFJthipH6O5vqxlbN.png"
}
}
}
上記アレイは、以下のビットによって生成され:ここから
$data = array();
foreach ($content as $value)
{
$title = explode(',', $value->title);
$filename = explode(',', $value->filename);
$d = array();
$d['topicname'] = $value->topicname;
$d['title'] = $title;
$d['filename'] = $filename;
$data[] = $d;
}
var_dump($data);
、私の目標は["filename"]
を取得し、最後に、私は、構造体の配列を取得するように設定され、配列に戻し、それを操作することである。
array(2) {
[0]=>
array(3) {
["topicname"]=>
string(19) "Signs giving orders"
["title"]=>
array(4) {
[0]=>
string(4) "Stop"
[1]=>
string(8) "No entry"
[2]=>
string(10) "No cycling"
[3]=>
string(17) "No motor vehicles"
}
["filename"]=>
array(4) {
[0]=>
string(44) "/storage/images/DQP0GVcUA2dG8ZfqeVYLO68YodgYnJMOjJw2o2iC.png"
[1]=>
string(44) "/storage/images/vWUcHGX3VVKPT08JXh9mAqZ40pT0vfDJ78Yoqovz.png"
[2]=>
string(44) "/storage/images/bplX8bbwHzHKX9n6SvvQiYNhkWwKxi2bhsrQ94U2.png"
[3]=>
string(44) "/storage/images/8KAEovxQn3EgzHoZg1euSgNYTFupnLdKusJ4SIEP.png"
}
}
[1]=>
array(3) {
["topicname"]=>
string(13) "Warning Signs"
["title"]=>
array(4) {
[0]=>
string(29) "Road narrows ahead both sides"
[1]=>
string(47) "Road narrows on right (left if symbol reversed)"
[2]=>
string(10) "Crossroads"
[3]=>
string(22) "Junction on bend ahead"
}
["filename"]=>
array(4) {
[0]=>
string(44) "/storage/images/uZ7fnDjlYfKU3pdSQ7wAq4siFryA6jSEitmRyPhp.png"
[1]=>
string(44) "/storage/images/4pslo6cC0I2E606DscWxiDD3sCBW7ZGaESQES4r0.png"
[2]=>
string(44) "/storage/images/xdVBMpV6PTLtX48M67kfWOqy59rsYMDZMuWbqDwl.png"
[3]=>
string(44) "/storage/images/hLtIGikARgARqmSqit4mqNXRFJthipH6O5vqxlbN.png"
}
}
}
これでファイル名がどのように変更されたかを確認します。上記を達成するために、私は次のように、アレイは、その後、私の操作を行い、var_dump($data);
から返され得る:
foreach ($data as $val)
{
foreach ($val['filename'] as $filecheck)
{
//get extension since images and videos are in separate folders
$file_ext = File::extension($filecheck);
$images = array('jpg','gif','png');
$videos = array('mp4', 'webm', 'ogg');
if(in_array($file_ext, $images))
{
$filename = 'images/'.$filecheck;
$file_url = Storage::url($filename);
$filecheck = $file_url;
}
elseif(in_array($extension, $videos))
{
$filename = 'videos/'.$filecheck;
$file_url = Storage::url($filename);
$filecheck = $file_url;
}
$file_array = array();
$file_array['filename'] = $filecheck;
}
}
上記の目的は次のとおりです。データベースから返されたファイル名を取得し、その適切なにそれをマップするためにファイルパス。 var_dump($file_array)
の内容は次のとおりです。
string(60) "/storage/images/DQP0GVcUA2dG8ZfqeVYLO68YodgYnJMOjJw2o2iC.png"
string(60) "/storage/images/vWUcHGX3VVKPT08JXh9mAqZ40pT0vfDJ78Yoqovz.png"
string(60) "/storage/images/bplX8bbwHzHKX9n6SvvQiYNhkWwKxi2bhsrQ94U2.png"
string(60) "/storage/images/8KAEovxQn3EgzHoZg1euSgNYTFupnLdKusJ4SIEP.png"
string(60) "/storage/images/uZ7fnDjlYfKU3pdSQ7wAq4siFryA6jSEitmRyPhp.png"
string(60) "/storage/images/4pslo6cC0I2E606DscWxiDD3sCBW7ZGaESQES4r0.png"
string(60) "/storage/images/xdVBMpV6PTLtX48M67kfWOqy59rsYMDZMuWbqDwl.png"
string(60) "/storage/images/hLtIGikARgARqmSqit4mqNXRFJthipH6O5vqxlbN.png"
これは私が立ち往生する場所です。どうすればこの配列を配列にマップできますか?