On Jul 8, 2008, at 3:38 PM, Shawn McKenzie wrote:
Philip Thompson wrote:
Hi all.
I think I might be having a brain-fart afternoon, but I can't think
of how to accomplish this.
I want these "centers" to be linked to 1 another. If center A links
to B and C, I want B to be linked to A and C, and C to A and B.
So... it should look something like this:
center link
A B
A C
B A
B C
C A
C B
These results will be stored in a database and each of the records
is unique. To slightly simplify things (hopefully!), I can just
store each of the centers in an array, like so: array(A,B,C,D). I
figure I'll have to loop through the array (several times?) and do
comparisons with each other one.
Basically, I don't want to over-complicate this for myself. Any
guiding light would be appreciated on how to link all of these!
Thanks
~Philip
Well, it depends upon what you want to do with these. You'll have
them in a db, so it's easy to get them out as an array. What's the
problem?
-Shawn
Ok, I figured out one solution. My brain finished farting. Here's what
I came up with:
<?php
$center_ids = explode(",", $_POST["list"]);
$count = count ($center_ids);
$list = array();
for ($i=0; $i<$count; $i++) {
for ($j=0; $j<$count; $j++) {
if ($j != $i && !in_array($center_ids[$j],
$list[$center_ids[$i]])) {
$list[$center_ids[$i]][] = $center_ids[$j];
}
}
}
foreach ($list as $cid1 => $array) {
foreach ($array as $cid2) {
$db->query("INSERT INTO `center_link` (`center_id`,
`link_center_id`) VALUES ('$cid1', '$cid2')");
}
}
?>
The resulting array for $list (if centers 1, 2 and 3 are selected) is:
Array
(
[1] => Array
(
[0] => 2
[1] => 3
)
[2] => Array
(
[0] => 1
[1] => 3
)
[3] => Array
(
[0] => 1
[1] => 2
)
)
If there's a cleaner/better way, feel free to set me straight. ;)
Thanks for your input, guys.
~Phil
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php