基本上按照標題。下面的代碼很好地工作,但似乎是一個相當漫長的過程來做什麼似乎是一個相當簡單的任務。有沒有一種更有效的方法來根據已經存在於數組中的內容來插入新的數組變量
我會看看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));
?>
在此先感謝
只是爲了澄清,你的意思是'CPU時間短'或'更短/更好的代碼'有效' – Patashu 2013-04-21 04:12:24
爲什麼你寫'if(blah?true:false)'而不是'if(blah )'? – Barmar 2013-04-21 04:16:23
@Patashu我的意思是減少CPU時間,並且如果它導致代碼更短,那麼它會帶來獎勵。 – user1937392 2013-04-21 04:20:43