基本的にはタイトル通り。次のコードはうまく機能しますが、かなり単純なタスクのように見えることを実行するには、かなり長いプロセスのように思えます。
これに代わるものとして foreach がどのように機能するかを見ていきますが、実際にこの問題に正しく取り組んだかどうか疑問に思っていました。
編集:たとえば、「。」ではなく「{}」を使用して連結するのを見たことがあります。高速だと言っていますが、このコードでそれらを機能させることができませんでした。
<?php
// Create Array
$foobar = array(
"foo" => "test1",
"bar" => "hello",
"far" => "this",
"boo" => "is",
// "foo_result" => "", // Uncomment to check that function does nothing where foo_result already available
"foo_link" => "http://1.media.collegehumor.cvcdn.com/82/16/162e153d618d49869783ccd475005fd5.jpg",
"for" => "cool"
);
function _insertarray($foobar) {
// provide arrays to test against
$foo1 = array("test1","test2");
$foo2 = array("test3","test4");
$foo3 = array("test5","test6");
$foo4 = array("test7","test8");
// End function where "foo_result" is already set
if (isset($foobar['foo_result'])) {
// Nothing to do
}
else {
// add the variable to the foo_result index based on values returned
if ((count(array_intersect($foo1, $foobar))) ? true : false) {
$foobar['foo_result'] = "<iframe src='" . $foobar["foo_link"] . "'>";
}
else if ((count(array_intersect($foo2, $foobar))) ? true : false) {
$foobar['foo_result'] = "<a href='" . $foobar["foo_link"] . "'>";
}
else if ((count(array_intersect($foo3, $foobar))) ? true : false) {
$foobar['foo_result'] = "<img src='" . $foobar["foo_link"] . "'>";
}
else if ((count(array_intersect($foo4, $foobar))) ? true : false) {
$foobar['foo_result'] = "<iframe src='" . $foobar["foo_link"] . "'>";
}
else {
// Nothing to do here
}
}
return $foobar;
}
print_r(_insertarray($foobar));
?>
前もって感謝します