I managed to write the following function which took me all afternoon. I used various sources and managed to cobble something together. I'm a newbie. It works, but I'm sure it can be coded better and more efficiently. If anybody has any ideas..
Here is my array:
Array
(
[0] => Array
(
[database] => oneclick_themes
[disk_usage] => 16384
[users] => Array
(
[0] => oneclick_themes
)
)
[1] => Array
(
[database] => oneclick_wp1
[disk_usage] => 123230
[users] => Array
(
[0] => oneclick_wp1
)
)
[2] => Array
(
[users] => Array
(
[0] => oneclick_wp10
)
[database] => oneclick_wp10
[disk_usage] => 123230
)
[3] => Array
(
[users] => Array
(
[0] => oneclick_wp11
)
[disk_usage] => 123222
[database] => oneclick_wp11
)
[4] => Array
(
[users] => Array
(
[0] => oneclick_wp12
)
[disk_usage] => 123230
[database] => oneclick_wp12
)
[5] => Array
(
[users] => Array
(
[0] => oneclick_wp13
)
[disk_usage] => 123222
[database] => oneclick_wp13
)
[6] => Array
(
[users] => Array
(
[0] => oneclick_wp14
)
[database] => oneclick_wp14
[disk_usage] => 123222
)
[7] => Array
(
[users] => Array
(
[0] => oneclick_wp2
)
[disk_usage] => 123226
[database] => oneclick_wp2
)
[8] => Array
(
[users] => Array
(
[0] => oneclick_wp3
)
[disk_usage] => 0
[database] => oneclick_wp3
)
[9] => Array
(
[database] => oneclick_wp4
[disk_usage] => 123230
[users] => Array
(
[0] => oneclick_wp4
)
)
[10] => Array
(
[users] => Array
(
[0] => oneclick_wp5
)
[database] => oneclick_wp5
[disk_usage] => 0
)
[11] => Array
(
[users] => Array
(
[0] => oneclick_wp6
)
[database] => oneclick_wp6
[disk_usage] => 0
)
[12] => Array
(
[disk_usage] => 123222
[database] => oneclick_wp7
[users] => Array
(
[0] => oneclick_wp7
)
)
[13] => Array
(
[disk_usage] => 123222
[database] => oneclick_wp8
[users] => Array
(
[0] => oneclick_wp8
)
)
[14] => Array
(
[database] => oneclick_wp9
[disk_usage] => 0
[users] => Array
(
[0] => oneclick_wp9
)
)
)
This is my PHP code:
$array = array();
function search_array($array, $val) {
$ArrIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($ArrIterator as $id => $sub) {
$childArray = $ArrIterator->getSubIterator();
if(strstr(strtolower($sub), strtolower($val))) {
$childArray = iterator_to_array($childArray);
$result[] = $childArray['database'];
}
}
return $result;
}
$results = array_filter( search_array( $array, '_wp') );
foreach( $results as $key=> $value ) {
$results[$key] = str_replace( $wp_db_prefix . "wp","", $value);
};
$wp_next_db_name = max($results) + 1;
Here is what it does.
It searches a multi-dimensional array which MYSQL DB info for the "_wp" string within the values.
Then it filters out the user account prefix "oneclick_" with prefix "wp" which leaves me with integers.
Then I find the highest value (max) and increment by 1.
The purpose is for a cPanel plugin to create incremental DB names.
databaseelement?